Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 873 Skopiuj do schowka Makro wpisujące tekst formuły zależy od wart. dwóch komórek
Autor Wiadomość
td2003
Exceloholic


Posty: 132
Wysłany: 04-04-2007, 17:36   Makro wpisujące tekst formuły zależy od wart. dwóch komórek

Witam ponownie!
Na początek z satysfakcją zauważam, że ostatnio pytam Was o poradę jakby nieco rzadziej, bo z wieloma rzeczami radzę już sobie samemu. :-D
Ale tym razem mam zadanie, do którego potrzebuję pomocy. Jest ono nieco skomplikowane, ale postaram się opisać je w miarę czytelnie.

Otóż mam kilkadziesiąt plików źródłowych zawierających dane i plik wynikowy, do którego zaczytywane będą dane z plików źródłowych. Pliki źródłowe mają identyczną strukturę, różnią się tylko wartościami poszczególnych komórek oraz (co tutaj najważniejsze) nazwami. Nazwy plików źródłowych są w formacie "x-y.xls", gdzie x to nr. 1-15, a y to 1-31.
Więc na czym polega problem?
Otóż do pliku wynikowego zaczytywane będą dane tylko z niektórych plików źródłowych. To, który plik źródłowy będzie brany pod uwagę będzie zależało od wartości dwóch komórek w pliku wynikowym.
Przykłady:
1) W pliku wynikowym A1=2, A2=16, co powoduje, że do kom. D5 wpisana będzie formuła "='[2-16.xls]Arkusz1'!$D$5" (czyli utworzone będzie łącze do kom. D5 w Arkuszu1 pliku 2-16.xls)
2) w pliku wynikowym A1=7, A2=29, formuła w kom. D5: "='[7-29.xls]Arkusz1'!$D$5".

W sumie podobna formuła będzie wpisywana jeszcze do kilkunastu innych komórek, ale działać będzie ta sama zasada, więc jak będę miał takie wzorcowe makro, to dalej już sobie poradzę.

Próbowałem poprzez przypisywanie zmiennym wartości tych komórek i wstawianie zmiennych do tekstu formuły, ale (oczywiście) nie idzie.

Będę wdzięczny za pomoc w zmierzeniu się z tym problemem.
ID posta: 4490 Skopiuj do schowka
 
 
Tajan


Pomógł: 5451 razy
Posty: 11869
Wysłany: 06-04-2007, 00:06   

W sumie rzecz się sprowadza do sklejenia kilku ciągów tekstowych:
Kod:
cz1 = Range("a1").Value
cz2 = Range("a2").Value

With Range("D5")
    .Formula = "='[" & cz1 & "-" & cz2 & ".xls]Arkusz1'!" & .Address
End With


z tym, że jeżeli pliki źródłowe nie sa otwarte, w formule należy jeszcze dodać ich ścieżkę:
Kod:

sciezka = "c:\dane\"

With Range("D5")
    .Formula = "='" & sciezka & "[" & cz1 & "-" & cz2 & ".xls]Arkusz1'!" & .Address
End With


Jezeli ścieżka do tych plików była identyczna z plikiem wynikowym, to można to wykorzystać definiując zmienną scieżka np w następujący sposób:

Kod:
sciezka = ActiveWorkbook.Path & "\"
ID posta: 4544 Skopiuj do schowka
 
 
td2003
Exceloholic


Posty: 132
Wysłany: 06-04-2007, 17:41   

Dzięki Tajan, oczywiście działa (jak zawsze). Teraz mogę spokojnie pracować nad resztą makra.
ID posta: 4558 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.wip.pl

Archiwum

Strona uĹźywa plikĂłw cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przegl�darce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
SprawdĹş, w jaki sposĂłb przetwarzamy dane osobowe