vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest piątek, 17 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Adres względny


otwartyotwarty rozpoczął: zajf postów: 7



napisał: LAnd
postów: 107


umieszczony:
6 czerwca 2007
00:06

  
1. Pozostaje problem odpowiedzi na pytanie Aplikacji "Czy aktualizować skoroszy danimi w innych skoroszytach ?"
2. co zrobić gdy link wskazuje na zbiór danych w katalogu w którym jest zbior główny a zbiór nie istnieje ( został skasowany lub przeniesiony ? (instrukcja If pierwsza )
3. co zrobić gdy zbiór danych nie istnieje w katalogu zbioru głównego ? ( powinna być instrukcja else do tego if'a )

tu na temat sterowania oświeżaniem danych

http://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/Excel/Q_22529979.html#a18974826

Po udzieleniu odpowiedzi na powyższe pytania powstaną nowe zagadnienia które trzeba będzie rozwiązać.

Proponuję inne podejście
Założenia
1. istnieje nie więcej niż 255 arkuszy danych
2.w zbiorze głownym istnieje arkusz RAPORT w którego komórkach wpisano fomuły pobierające dane z zeszytów ZESZYTDane1 do ZESZYTDane255

-tworzymy zeszyt GŁOWNY zawierający arkusz RAPORT i arkusze DANE1 do DANE255
-w arkuszu RAPORT wpisujemy formuły pobierające dane z arkuszy DANEnnn
-zamiast do zeszytów ZESZYTDanennn importujemy dane do arkuszy DANEnnn
-gdy inne zeszyty potrzebują danych odwołują się do arkusza zeszyt GŁÓWNY.DANEnnn a nie do ZESZTDanennn
-aktualizacja danych - wyczyścić dane w arkuszu DANEnnn poleceniem ClearContents i zaimportować nowe dane
pomogę, jeżli będie potrzeba w makrach do importu zbiorów tekstowych do istniejących arkuszy
napisał: LAnd
postów: 107


umieszczony:
5 czerwca 2007
12:02

edytowany:
5 czerwca 2007
12:18

  
użycie przez zajf "adres względny a nie bezwzględny" zrozumiałem jako adres obszaru a nie scieżkę do zbioru danych tzw. ŁĄCZA

w zbiorze połączonym do danych w module kodu ThisWorkbook wkleić poniższy kod
przepraszam adaptowałem blok wyłuskiwania nazwy i musiałek kilka razy poprawić

Private Sub Workbook_Open()
 Dim ArrLinks, i, ZbLnkName, ZbLnkFullName
 
  With ThisWorkbook
   ' lista (łączy) linków tego zeszytu (ThisWorkbook) do innych zbiorow EXCEL'a
   ArrLinks = .LinkSources(xlExcelLinks)
   If Not IsArray(ArrLinks) Then Exit Sub ' nie ma linków
    
   For i = LBound(ArrLinks) To UBound(ArrLinks)
    
     ZbLnkName= ""
     For j = Len(ArrLinks(i)) To 1 Step -1
      If Mid(ArrLinks(i), j, 1) = "\" Then
       ZbLnkName= Mid(ArrLinks(i), j + 1) 'nazwa zbioru bez ścieżki
       Exit For
      End If
     Next

     ZbLnkFullName = ThisWorkbook.Path & "\" & ZbLnkName
     If UCase(ArrLinks(i)) Like UCase(ZbLnkFullName) Then 'link wskazuje na zbiór w tym samym katalogu co ThisWorkbook
      ' jest OK
     ElseIf Len(Dir(ZbLnkFullName)) > 0 Then 'w katalogu w którym jest ThisWorkbook istnieje zbiór o nazwie występującej w linku
      'UWAGA
      ' wystąpi błąd jeżeli ThisWorkbook ma zablokowane arkusze !!!!!
      Application.DisplayAlerts = False 'wyłączenie pytania o zmianę linku
      ThisWorkbook.ChangeLink ArrLinks(i), ZbLnkFullName
      Application.DisplayAlerts = True
     End If
   
   Next i
  End With
  
 End Sub




'chyba nie trzeba tego użyć bo nastąpi automatycznie

'' do ThisWorkbook są jeszcze dwie metody wg HELP'a
''RefreshAll ' Method
''Refreshes all external data ranges and PivotTable reports in the specified workbook

''UpdateLink Method
''Updates a Microsoft Excel, DDE, or OLE link (or links).
napisał: zajf
postów: 9


umieszczony:
5 czerwca 2007
09:06

  
Artik

Najbardziej interesuje mnie sytuacja aby pliki były pozamykane. Bo jeśli miałbym otwierać wszystkie pliki to wolałbym sytuację w której kluczowe dane zostaną zapisane w plikach tekstowych i stamtąd będą zaczytywane.

Mógłbyś dokładniej opisać sytuację z jenorazowym pytaniem o położenie pliku jeśli znajduje się w innym katalogu (prosiłbym o jakieś wskazówki bo nie mam pojęcia jak się do tego zabrać).

Pzdr
napisał: LAnd
postów: 107


umieszczony:
4 czerwca 2007
20:57

  
klawisz F4 umożliwia w czasie edycji formuły w komórce lub oknie edycji zmianę sposoby adresowania
-należy otworzyć komórkę do edycji klawiszem F2 lub kliknąc pole edycji formuły
-wstawić kursor tekstowy w część adresu zawierającą litery kolumn i cyfry wierszy lub tę część zaznaczyć
- każde naciśnięcie klawisza F4 spowoduje cykliczną zmianę sposobu adresowania wskazanego lub zaznaczonych adresów

F4 działa też w polach kreatora funkcji
napisał: zajf
postów: 9


umieszczony:
4 czerwca 2007
08:55

  
Mam pytanie. Czy w VBA można napisać (a jeśli tak to jak) takie makro aby z danego pliku, z danego arkusza, z danej komórki pobierało dane do innego pliku. Chodzi mi jednak o adres względny a nie bezwzględny. Byłoby to mi nizwykle przydatne bo zmieniając lokalizację na dysku czy przerzucając pliki na innego kompa zachowywałbym status quo.


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z