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. Kopiowanie danych z plików csv wraz z nazwą pliku z którego zostały

kamilrus 15 Mar 2017 13:49 588 1
  • #1 15 Mar 2017 13:49
    kamilrus
    Poziom 1  

    Witam. Nie znam niestety VBA i mogę liczyć tylko na Waszą pomoc. Musze napisać makro, które skopiuje mi dane z pliku csv/txt do arkusza, przypisując jednocześnie nazwę pliku z którego zostało skopiowane.. .To jakby połaczenie tych dwóch kodów:

    Sub Importuj()

    Dim rg As Range

    Dim sciezka As String, plik As String, linia As String

    Dim T As Variant



    sciezka = ThisWorkbook.Path & "/"

    'miejsce wkopiowania

    Set rg = Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)



    plik = Dir(sciezka & "*.txt") 'czy jest plik tekstowy

    Do While plik <> "" 'jeśli jest plik

    Open sciezka & plik For Input As #1 'otwórz plik tekstowy



    Do Until EOF(1) 'powtarzaj aż napotkasz koniec pliku

    Line Input #1, linia 'czytaj linię

    T = Split(linia, ";") 'rozbij na elementy wg separatora

    rg.Resize(1, UBound(T)) = T 'zapisz do komórek

    Set rg = rg.Offset(1, 0) 'kolejny wiersz docelowy

    Loop

    Close #1 'zamknij plik tekstowy

    plik = Dir() 'szukaj kolejnego pliku

    Loop

    End Sub


    i tego


    For Each f2 In f
    With wks
    Open f2 For Input As #1
    Do While Not EOF(1)
    Line Input #1, linia
    .Cells(wiersz, 1) = f2.Name '<--- o ta funkcje chodzi mi w tamtym kodzie
    .Cells(wiersz, 2) = linia
    wiersz = wiersz + 1
    Loop
    Close #1
    End With
    Next

    0 1
  • #2 17 Mar 2017 14:49
    Prot
    Poziom 24  

    kamilrus napisał:
    Nie znam niestety VBA... Musze napisać makro :D


    Na początek (nauki :cry: ) zapamiętaj, że VBA jest z reguły dedykowane do konkretnej sytuacji :arrow: najlepszym "opisem sytuacji" zaś są przykładowe pliki wejściowe i wyjściowe :!: (ewentualnie uzupełnione opisem ścieżek ich lokalizacji).

    Przykładowo jeśli miałbyś tylko jeden plik do importu z csv to możesz wykorzystać najprostszy kod:

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    w którym na stałe masz wprowadzoną zmienną FilePath, ale to jest oczywiście przypadek szczególny.

    kamilrus napisał:
    skopiuje mi dane z pliku csv/txt do arkusza, przypisując jednocześnie nazwę pliku


    W opisach musisz być bardziej precyzyjny bo literalnie odczytując chcesz aby makro skopiowało dane z jednego pliku csv do arkusza w skoroszycie zachowanym z nazwą tego pliku csv :?:

    0
TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo