VBA Skript zum Import von CSV-Dateien
Schönen guten Morgen!
Ich habe ein kleines VBA Problem und komme nicht wirklich weiter... Deswegen bin ich auf eure Hilfe angewiesen... Ich habe Google schon ausgiebig durchforstet aber das passende war nicht dabei, oder ich habe nach den falschen Begriffen gesucht.
Nun zum Problem:
Ich bekomme jeden Tag eine CSV-Datei in der Infos stehen über am Vortag erreichte Events es werden jeden Tag unterschiedlich viele erreicht (Es gibt zwei Arten; A und B). Am Ende des Monats muss ich die auswerten. Dafür muss ich, weil das im Prozess so festgelegt ist, alle A-Events (B ist völlig egal) in eine Excel-Liste verschieben (komplette Zeile). Das A steht dabei als Text in der Liste. Das händisch zu machen ist mega aufwendig, deswegen das Skript.
Ein S-Verweis fällt weg weil das Kriterium WBA in Spalte H stehe und ich nicht weiß, wie ich das für den Vorgang selbst ändern kann und dann wieder zurück ändern kann... Und S-Verweis ja nur in der 1. Spalte sucht.
Zum Einlesen des Datei-Pfads wollte ich Application.FileDialog nehmen, weil der sich jeden Monat ändern und die Dateien immer mit dem Datum versehen werden an dem sie erstellt wurden...
Ich hoffe, dass ist detailliert genug und ihr könnt mir helfen.
Meine VBA-Kenntnisse sind auch leider nicht so dolle...
Vielen lieben Dank im Voraus für eure Hilfe!!!
Toepfi
Ich habe ein kleines VBA Problem und komme nicht wirklich weiter... Deswegen bin ich auf eure Hilfe angewiesen... Ich habe Google schon ausgiebig durchforstet aber das passende war nicht dabei, oder ich habe nach den falschen Begriffen gesucht.
Nun zum Problem:
Ich bekomme jeden Tag eine CSV-Datei in der Infos stehen über am Vortag erreichte Events es werden jeden Tag unterschiedlich viele erreicht (Es gibt zwei Arten; A und B). Am Ende des Monats muss ich die auswerten. Dafür muss ich, weil das im Prozess so festgelegt ist, alle A-Events (B ist völlig egal) in eine Excel-Liste verschieben (komplette Zeile). Das A steht dabei als Text in der Liste. Das händisch zu machen ist mega aufwendig, deswegen das Skript.
Ein S-Verweis fällt weg weil das Kriterium WBA in Spalte H stehe und ich nicht weiß, wie ich das für den Vorgang selbst ändern kann und dann wieder zurück ändern kann... Und S-Verweis ja nur in der 1. Spalte sucht.
Zum Einlesen des Datei-Pfads wollte ich Application.FileDialog nehmen, weil der sich jeden Monat ändern und die Dateien immer mit dem Datum versehen werden an dem sie erstellt wurden...
Ich hoffe, dass ist detailliert genug und ihr könnt mir helfen.
Meine VBA-Kenntnisse sind auch leider nicht so dolle...
Vielen lieben Dank im Voraus für eure Hilfe!!!
Toepfi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 331369
Url: https://administrator.de/forum/vba-skript-zum-import-von-csv-dateien-331369.html
Ausgedruckt am: 22.04.2025 um 13:04 Uhr
8 Kommentare
Neuester Kommentar

Ich habe Google schon ausgiebig durchforstet aber das passende war nicht dabei, oder ich habe nach den falschen Begriffen gesucht.
Wieso so weit weg schweifen, die Lösungen sind doch en masse so nah Excel Makro um CSV Dateien auszuwerten und gesammelt anzuzeigen.
Gruß

Du sprichst in Rätseln.
Was ich allerdings bei diesem Skript nicht verstehe ist, es kopiert mir alle, die die Bedingung B haben rechts neben die der Bedingung A...
Kann nicht sein, denn in Zeile 59 wird die Ausgabezelle immer nach unten verschoben.Und beim festlegen des Zielarbeitsblatt erstellt es ein neues Tabellenblatt und verwendet nicht das vorhandene...
Doch, wozu heißt das temporäre Sheet wohl wsTemp, weil es nur temporär gebraucht wird um die Daten vorher zu filtern und dann in das Zielsheet zu kopieren. Außerdem wird das Sheet ja am Ende wieder gelöscht (s. Zeile 63)!Denn wenn ich mit ActiveWorkbook.Worksheets("Tabelle1") arbeite dann überschreibt er mir ja immer alles, was da bisher drin steht...
Das ist klar weil in Zeile 29 der Inhalt des Sheets gelöscht wird, steht ja auch im Kommentar!! Also nimm die Zeile raus und ermittle in Zeile 32 die letzte belegte Zelle. Jeder braucht es halt anders.Set curCell = wsTarget.Cells(Rows.Count,"A").End(xlUp).Offset(1,0)

Das stimmt, trotzdem werden die links daneben kopiert...
Tja was erwartest du denn anderes von.UsedRange.SpecialCells(xlCellTypeVisible).Copy curCell
Doku => "UsedRange" nachschlagen und schlauer sein!
https://msdn.microsoft.com/de-de/library/office/ff840732.aspx