Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VBA Excel - Import danych z innych skoroszytów

ike_se 31 Lip 2012 22:27 5435 4
  • #1 31 Lip 2012 22:27
    ike_se
    Poziom 2  

    Witam
    nie mogę sobie poradzić ze stworzeniem makra które ma zadanie skopiować dane z innych plików do jednego skoroszytu (razem.xls).

    W pliku "razem.xls" jest arkusz w którym w kolumnie "A", w kolejnych wierszach jest umieszczony numer np. X01, X02, itd do 100.
    W katalogu C:\Dane są założone podkatalogi które się nazywają tak jak ten powyższy numer czyli X01, X02, itd. W poszczególnych katalogach jest plik o takiej samej nazwie "dane.xls". Zależy mi aby do kolumny "B" we właściwym wierszu (odpowiadającemu "numerowi X01 itd") w pliku "razem.xls" została skopiowana wartość z komórki "B5" jaka znajduje się w pliku "dane.xls" arkuszu "dane" w poszczególnych katalogach.

  • #2 31 Lip 2012 23:32
    adamas_nt
    Moderator Programowanie

    Od której strony się do tego zabierasz? Przeglądasz katalog i porównujesz nazwy podkatalogów z wartościami w komórkach, czy odwrotnie? Na czym konkretnie utknąłeś?

  • #3 31 Lip 2012 23:58
    ike_se
    Poziom 2  

    Odwrotnie.

    Tak szczerze mówiąc to nie wiem jak się za to zabrać, a dokładnie żeby była zwracana zmienna o danym numerze z każdego wiersza następnie żeby został wybrany właściwy katalog o tej zmiennej.
    Jestem bardzo początkujący jeśli chodzi o VBA.
    Z góry dziękuję za pomoc.

  • #4 01 Sie 2012 08:26
    adamas_nt
    Moderator Programowanie

    Nic tak nie uczy jak przykłady, a tych jest na forum dostatek.
    Szukaj pod hasłem "Excel Dir", "Excel lista plików" i coś na temat pętli. Np Link.

    W Twoim wypadku zastosowałbym pętlę For Each element In kolekcja, gdzie kolekcja to zakres komórek z nazwami katalogów. Np coś takiego

    Kod: vb
    Zaloguj się, aby zobaczyć kod
    Przeanalizuj (krokowo: klawisz F8 w edytorze) i będziesz już prawie w domu.

  • #5 01 Sie 2012 11:47
    ike_se
    Poziom 2  

    Fakt jestem prawie w domu, ale tylko prawie :)



    If Dir(kat & sKat & dKat & plik) <> Empty Then
    Workbooks.Open Filename:=kat & sKat & dKat & plik
    Set Rng1 = Workbooks(ActiveWorkbook.Name).Sheets("Arkusz1")
    Rng2.Cells(???, "C").Value = Rng1.Cells(57, "D").Value ' JAK TU ZAMIAST "???" UMIEŚCIĆ WŁAŚCIWY NUMER WIERSZA
    Workbooks(plik).Close SaveChanges:=False

    'MsgBox "Znalazłem " & kat & sKat & dKat & plik
    Else
    MsgBox "Pliku " & plik & " nie ma w " & kat & sKat
    End If

    Dodano po 1 [godziny] 4 [minuty]:

    Poradziłem sobie. Jakie to banalne - kom.Row

    Dzięki za pomoc adamas.nt

    Tak teraz sobie myślę ile czasu człowiek w życiu stracił nie wykorzystując makr w excelu :)

    Pozdrawiam

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME