Office: CSV Dateien aus verschiedenen Unterordnern in eine Excel impotieren

Helfe beim Thema CSV Dateien aus verschiedenen Unterordnern in eine Excel impotieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, da ich leider komplett keine Ahnung habe von VBA Programmieren muss ich mich an Euch wenden. Zwar weiss ich wie man VBA`s über die... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von GMankiw, 18. September 2012.

  1. CSV Dateien aus verschiedenen Unterordnern in eine Excel impotieren


    Hallo zusammen,

    da ich leider komplett keine Ahnung habe von VBA Programmieren muss ich mich an Euch wenden. Zwar weiss ich wie man VBA`s über die Entwicklertools als Modul speichert und ausführt, das war es dann aber auch.

    Zur Info: Die Suche habe ich bereits bemüht, eine Lösung aber noch nicht egfunden.

    Nun zu meinem Problem: - Ich habe immer eine CSV mit dem gleichen Dateinamen--> X.csv - Diese CSV wird monatlich aktualisiert und wurde für den August unter C:\\08_2012\OrdnerY\X.csv abgelegt. Für den September unter C:\\09_2012\OrdnerY\X.csv usw.

    Mein wii jetzt ein Makro zu haben, welches mir auf Knopfdruck in den Ordner für den aktuellsten Monat springt (09_2012) und dann hier die X.csv nimmt ab Zeile A2 - Zeile 1 sind nur Kopfdaten - , diese ausliest und unter Beachtung von Trennzeichen die Daten in XLS unter die bereits bestehenden Vormonatsdaten anfügt und dann noch Nmaen des Ordner der ersten Spalte in jeder Zeile wiedergibt (hier z.B.: 09_2012 vor jeden importierten Datensatz)

    Eine VBA zum importieren von CSV Daten in XLS unter Angabe des Zielordners und Berücksichtigung von Trennzeichen habe ich bereist gefunden (s.u.). Ich würde dies aber gerne automatisch durchführen lassen. Wie gesagt es geht darum immer die gleiche Datei im Subordner des aktuellsten Monats auszulesen.

    Sub CSV_Import() Dim dateien, i, lastrow lastrow = 1 dateien = Application.GetOpenFilename _ ("csv-Dateien (*.csv), *.csv", MultiSelect:=True) If IsArray(dateien) Then For i = 1 To UBound(dateien) Workbooks.Open dateien(i), local:=True With ThisWorkbook.Sheets(1) ActiveSheet.UsedRange.Copy Destination:=.Range("A" & lastrow) lastrow = .UsedRange.Rows.Count + 1 End With ActiveWorkbook.Close False Next i End If End Sub

    Ich hoffe ihr könnt mir hierbei helfen...

    Grüße

    :)
     
  2. Hallo G,

    ungetestet!

    Sub CSV_Import()
    Dim objWBCSV As Workbook
    Dim strPath1 As String, strpath2 As String, strMonth As String
    Dim lngLast As Long

    strPath1 = "C:\\" 'Fixer vorderer Pfad-Teil - Anpassen
    strpath2 = "OrdnerY\X.csv " 'Fixer hinterer Pfad-Teil - Anpassen

    If Right(strPath1, 1) <> "\" Then strPath1 = strPath1 & "\"
    If Left(strpath2, 1) <> "\" Then strpath2 = "\" & strpath2

    strMonth = Format(Date, "MM_yyyy")

    If Dir(strPath1 & strMonth & strpath2, vbNormal) <> "" Then
    Set objWBCSV = Workbooks.Open(strPath1 & strMonth & strpath2, local:=True)

    With ThisWorkbook.Sheets(1)
    lngLast = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
    objWBCSV.Sheets(1).UsedRange.Offset(1, 0).Copy Destination:=.Cells(lngLast, 2)
    .Range(.Cells(lngLast, 1), .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, 1)) = strMonth
    End With

    objWBCSV.Close False
    Else
    MsgBox "Die Datei" & vbLf & vbLf & "'" & strPath1 & strMonth & strpath2 & "'" & _
    vbLf & vbLf & "konnte nicht gefunden werden!", vbExclamation, "Hinweis"
    End If

    Set objWBCSV = Nothing
    End Sub

    « Gruß Sepp » Geändert von josef e (20.09.2012 um 22:39 Uhr).
     
  3. Hallo Sepp,

    vielen Dank für deine schnelle Antwort!

    Es scheint mir, als wenn das Makro bei der Ausführung immer den aktuellen Tag (also Heute) nimmt und dann den entsprechenden Ordner im Verzeichnis sucht.

    Da diese Ordner zu unterschiedlichen Tagen und unabhängig von mir erstellt werden, müsste das Makro nicht den aktuellsten Tag hernehmen, sondern den "neuesten" Ordner suchen - am besten im Format (YYYYMMTThhmm(Uhrzeit)) und dann im Unterordner dieses aktuellsten Ordners die entsprechende CSV finden und in ein neues XLS an die bereits bestehenden Daten anfügen.

    Als Kirsche auf der Sahentorte noch in die letzte oder erste Spalte diesen Datumsstemple des Überverszeichnisses (YYYYMMTThhmm(Uhrzeit) einfügen.

    Ist dies auf Basis deines Codes möglich?

    Gruß
    G
     
  4. CSV Dateien aus verschiedenen Unterordnern in eine Excel impotieren

    Hallo G,

    du hast beschrieben, das der Ordner mit "Monat_Jahr" benannt ist, woher bitte sollte ich wissen, dass der Ordner plötzlich anders heißt?

    Wie sind den die Ordner nun wirklich benannt?





    « Gruß Sepp »
     
  5. Hallo Sepp,

    leider wusste ich nicht dass dies so ausschlaggebend ist, mein Fehler. Wie gesagt bin kompletter Laie...

    Also die Ordner in denen immer die gleiche CSV liegt sind wie folgt genannt:
    C:\\...\201209191930\OrdnerY\X.csv
    C:\\...\201208121730\OrdnerY\X.csv
    C:\\...\201207102000\OrdnerY\X.csv
    C:\\...\201206021130\OrdnerY\X.csv
    ...

    Wie gesagt beispielhaft, da es keinen festen Rythmus gibt zu dem diese aktualisiert werden.

    Wenn du weitere Infos brauchst, nur her damit!

    Gruss
    G
     
  6. Hallo G,

    wieder ungetestet!

    Sub CSV_Import()
    Dim objFSO As Object, objFolder As Object, objF As Object
    Dim objWBCSV As Workbook
    Dim strPath1 As String, strpath2 As String, strFolder As String
    Dim lngLast As Long, lngC As Long
    Dim dblMin

    strPath1 = "C:\\" 'Fixer vorderer Pfad-Teil - Anpassen
    strpath2 = "OrdnerY\X.csv " 'Fixer hinterer Pfad-Teil - Anpassen

    If Right(strPath1, 1) <> "\" Then strPath1 = strPath1 & "\"
    If Left(strpath2, 1) <> "\" Then strpath2 = "\" & strpath2

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(strPath1)

    dblMin = 9 ^ 9

    For Each objF In objFolder.SubFolders
    If objF.Name Like "############" Then
    dblMin = _
    Application.Min(dblMin, CDbl(Clng(DateSerial(Left(objF.Name, 4) * 1, Mid(objF.Name, 5, 2) * 1, Mid(objF.Name, 7, 2) * 1)) + _
    CDbl(TimeSerial(Mid(objF.Name, 9, 2) * 1, Right(objF.Name, 2) * 1, 0))))
    End If
    Next

    strFolder = Format(dblMin, "yyyyMMddhhmm")

    If Dir(strPath1 & strFolder & strpath2, vbNormal) <> "" Then
    Set objWBCSV = Workbooks.Open(strPath1 & strFolder & strpath2, local:=True)

    With ThisWorkbook.Sheets(1)
    lngLast = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
    objWBCSV.Sheets(1).UsedRange.Offset(1, 0).Copy Destination:=.Cells(lngLast, 2)
    .Range(.Cells(lngLast, 1), .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, 1)) = strFolder
    End With

    objWBCSV.Close False
    Else
    MsgBox "Die Datei" & vbLf & vbLf & "'" & strPath1 & strFolder & strpath2 & "'" & _
    vbLf & vbLf & "konnte nicht gefunden werden!", vbExclamation, "Hinweis"
    End If

    Set objWBCSV = Nothing
    End Sub





    « Gruß Sepp »
     
  7. Hallo Sepp,

    sensationell!!! Es funzt!!! Ganz großes Damentennis!!! Habe nur den Ausdruck "dblmin" ind "dblmax" geändert, da er sonst den ältesten Ordner gesucht hat. Ansonsten flutscht es wunderbar!

    Wie würde das Ganze eigentlich aussehen, wenn man den Dateienpfad komplett variabilisieren möchte, sprich bei Durchführung des Makros werde ich gefragt bzw. muss ich eine Eingabe machen, welcher Ordner zu durchsuchen ist - momentan sucht er sich diesen ja automatisch in dem er das jüngste Datum sucht?
    Im Falles, dass sich die Logik im Update-Prozess ändert und die Datei nicht mehr in den jüngsten Ordner eingespielt wird - leider traue ich den Jungs die dies durchführen alles zu - , hätte ich die Möglichgkeit auf den Ordner zuzugreifen, in dem die relevante Datei drinsteht.

    Grüße und nochmals vielen vielen Dank!!!!
    G
     
  8. CSV Dateien aus verschiedenen Unterordnern in eine Excel impotieren

    Hallo G,

    willst du wirklich ein Verzeichnis auswählen?

    Wäre es nicht sinnvoller gleich die entsprechende Datei zu wählen?

    Z. B. so:

    Sub CSV_Import2()
    Dim objWBCSV As Workbook
    Dim lngLast As Long
    Dim strFile As String

    strFile = Application.GetOpenFilename("CSV Dateien (*.csv),*.csv")

    If strFile <> CStr(False) Then
    Set objWBCSV = Workbooks.Open(strFile, local:=True)

    With ThisWorkbook.Sheets(1)
    lngLast = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
    objWBCSV.Sheets(1).UsedRange.Offset(1, 0).Copy Destination:=.Cells(lngLast, 2)
    .Range(.Cells(lngLast, 1), .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, 1)) = objWBCSV.Name
    End With

    objWBCSV.Close False
    End If

    Set objWBCSV = Nothing
    End Sub



    « Gruß Sepp »
     
  9. Hallo Sepp,

    jupp, das passt ebenfalls. Super Sache, vielen Dank nochmals für die Hilfe!

    Gruß
    G
     
Thema:

CSV Dateien aus verschiedenen Unterordnern in eine Excel impotieren

Die Seite wird geladen...
  1. CSV Dateien aus verschiedenen Unterordnern in eine Excel impotieren - Similar Threads - CSV Dateien verschiedenen

  2. Farbspeicherung in CSV-Datei

    in Microsoft Excel Hilfe
    Farbspeicherung in CSV-Datei: Hallo, gerade versuche ich meinen Kontoauszug im CSV-Format für den Steuerberater vorzubereiten und unterschiedliche Zeilen verschieden einzufärben. Das gelingt unproblematisch. Aber das Ganze...
  3. CSV Dateien mit unterschiedlichen Format importieren und zusammenführen

    in Microsoft Access Hilfe
    CSV Dateien mit unterschiedlichen Format importieren und zusammenführen: Guten Morgen, ich versuche inzwischen seit einiger Zeit einige CSV aus verschiedenen Quellen zusammenzuführen. Sämtliche Recherchen über Google etc. haben mich leider zu keiner Lösung geführt und...
  4. csv Import Tabelle mit viel Inhalt in einer Zelle

    in Microsoft Excel Hilfe
    csv Import Tabelle mit viel Inhalt in einer Zelle: Hallo, ich habe bei mir auf Arbeit ein sehr altes Informationssystem in dem wir unser Aktenarchiv organisiert haben. In diesem Archivsystem sind Informationen enthalten wie der zeitliche Umfang...
  5. CSV Datei lässt sich nicht importieren

    in Microsoft Access Hilfe
    CSV Datei lässt sich nicht importieren: Guten Tag Zusammen. Vorab ich bin ein totaler Laie beim Thema Access. Ich versuche eine CSV Datei mittels Assistenten zu importieren. Bei den Importspezifikationen stelle ich folgendes ein:...
  6. Exportieren von Kontakten von Outlook.com in eine CSV-Datei

    in Microsoft Outlook Tutorials
    Exportieren von Kontakten von Outlook.com in eine CSV-Datei: Exportieren von Kontakten von Outlook.com in eine CSV-Datei Outlook.com Mehr... Weniger Sie können Ihre Kontakte aus...
  7. alle csv Dateien in eine lokale Tablle im Access importieren

    in Microsoft Access Hilfe
    alle csv Dateien in eine lokale Tablle im Access importieren: Hallo zusammen, ich habe hier schon eingies gelesen, aber leider konnte mir noch nichts weiterhelfen. Folgendes Problem: Ich bekomme jede Woche bis zu 20 csv Dateien per Mail. Diese speichere...
  8. CSV-Dateien werden mit falschen Umlauten eingelesen

    in Microsoft Excel Hilfe
    CSV-Dateien werden mit falschen Umlauten eingelesen: Hallo, ich möchte gerne mehrere CSV-Datein in eine Exceldatei einlesen. Über PowerQuery funktioniert das ja prinzipiell auch.....leider habe ich ein größeres Problem......erstens erkennt er mir...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden