Herbers Excel-Forum - das Archiv

Daten eine *.CSV-Datei herausfiltern

Bild

Betrifft: Daten eine *.CSV-Datei herausfiltern
von: Ralf

Geschrieben am: 14.12.2006 13:20:46
Hallo Excelfreunde,
meine Bank ermöglicht mir meine Kontodaten als *.CSV-Datei auf meinem PC zu bearbeiten. Wie kann ich aus dieser Textdatei einzelne Informationen in eine Exceltabelle kopieren damit ich sie als Zahl oder auch Text weiterverarbeiten kann?
Beispiel: In Zelle A1 steht der Text "01.09.2006,"DAUERAUFTRAG NR. 000 HANS MUSTERMANN ","-999,00","","0000000000"
Ich benötige Art der Buchung, Name und natürlich den Betrag.
Bitte um Hilfe....
Danke im vorraus
Gruß Ralf
Bild

Betrifft: Habe ...
von: Walter

Geschrieben am: 14.12.2006 14:17:47
Hallo Ralf,
wenn die Datei in Deinem Verzeichnis liegt z.B. C:\Muster\ ,
die Datei öffnen, wird eigentlich alles direkt in Spalten aufgeteilt (Excel2003).
Wenn nicht, solltest Du die Datei als Textdatei umwandeln, dann die Spalten etc.
in (Excel > Daten > dann Text in Spalten, durchführen.
Umwandeln:
Name ("C:\Muster\Deine.csv") As "Deine.txt"
mfg walter
Bild

Betrifft: AW: Habe ...
von: Ralf
Geschrieben am: 14.12.2006 15:27:11
Hallo Walter,
danke für deine Hilfe. Ich habe mit "Daten"-"Text in Spalten", die einzelnen Daten zwar in jeweils eigene Zellen bekommen, aber gibt es nicht eine automatisierte Funktion, die das langwierige Umwandeln für mich erleichtert? VBA-Lösung....vieleicht?
Bild

Betrifft: Doch gibt es
von: Walter

Geschrieben am: 14.12.2006 16:07:03
Hallo Ralf,
ich habe die Arbeitschritte aufgezeichnet und als Makro in einem Modul
hinterlegt, anschließend per Button wird das umwandeln durchgeführt.
Bei mir sieht das so aus:
Application.Calculation = xlCalculationManual 'damit die Berechnung ausschalten
'geht dann schneller
Workbooks.Open Filename:="C:\Muster\Muster.txt"
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlSingleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
(20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), _
Array(27, 1), Array(28, 1), Array(29, 1), Array(30, 1)), TrailingMinusNumbers:=True
Range("A1").Select
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft 'für das Löschen einer Spalte
Columns("B:E").Select
Selection.Delete Shift:=xlToLeft
Columns("C:D").Select
Selection.Delete Shift:=xlToLeft
Columns("D:F").Select
Selection.Delete Shift:=xlToLeft
Columns("F:H").Select
Selection.Delete Shift:=xlToLeft
Columns("H:M").Select
Selection.Delete Shift:=xlToLeft
Columns("J:J").Select
Selection.Delete Shift:=xlToLeft
Rows("2:2").Select
Selection.Insert Shift:=xlDown 'hier wird die Zeile n. Rechts verschoben
Selection.Insert Shift:=xlDown
Selection.Insert Shift:=xlDown
Selection.Insert Shift:=xlDown
Range("A2").Select
Application.Calculation = xlCalculationAutomatic 'wieder zurück
End Sub
mfg walter
Bild

Betrifft: AW: Doch gibt es
von: Ralf

Geschrieben am: 14.12.2006 16:52:28
Habe deinen VBA-Code mit einem Button verbunden, doch es gibt da ein Problem. Die Datei wird geladen, aber es ist kein Inhalt mehr vorhanden. Ich sehe nur leere Zellen. Die Daten sind dann futsch :(. Hab den Debugger ausgefuhrt und ab hier verschwinden die Daten in der Spalte A.
Selection.Delete Shift:=xlToLeft 'für das Löschen einer Spalte
Columns("B:E").Select
bin nicht der VBA-King, vielleicht habe ich was falsch gemacht.
Bild

Betrifft: AW: Doch gibt es
von: Ralf
Geschrieben am: 14.12.2006 16:55:13
ich würde auch gern die Daten aus dem Internet als CSV-Datei behalten. Dann muß ich sie nicht alle in Textdateien umwandeln. Geht das?
Bild

Betrifft: Geht doch schnell
von: Walter
Geschrieben am: 14.12.2006 19:52:20
Hallo Ralf,
lade mal ein Muster hoch und schreib mir was Du erreichen willst.
Ich mach Dir das Beispiel fertig, geht übrings sau schnell, bei meinen Daten
ca 1000 Reihen max 2sek.
mfg Walter
Bild

Betrifft: AW: Geht doch schnell
von: Ralf
Geschrieben am: 15.12.2006 13:34:27
Ich sende eine Beispieldatei. Es sind zwei Tabellenblätter.
Die erste zeigt den CSV-Dateityp, die zweite, wie sie ausschauen sollte.
Danke für die Hilfe, Walter
https://www.herber.de/bbs/user/39028.xls
Bild

Betrifft: Hier ist fertig
von: Walter

Geschrieben am: 15.12.2006 14:39:39
Hallo Ralf,
ist fertig.
Dauert ca. 5 sek. auf meinem Rechner, wenn mehr Daten drin stehen dauert es NICHT länger,da ich die Berechnung ausgeschaltet habe.
Du mußt die Sheet csv natürlich in diese Beispieldatei kopieren, darauf ein Button und dem Makro zuordnen, schau es Dir an.
https://www.herber.de/bbs/user/39029.xls
Kurze Rückmeldung ...
mfg Walter
Bild

Betrifft: AW: Hier ist fertig
von: Ralf

Geschrieben am: 15.12.2006 15:03:49
Ist ja irre,
sogar mit Druckauftrag. Erst wurde der ganze Bildschirm von Excel weiß, dann wird gedruckt. Es klappt. Ich danke dir und beneide insgeheim deine VBA-Kenntnisse. Ich bilde mich gerade weiter. Bekomme zu Weihnachten ein Buch von Bernd Held (Execl-VBA in 14 Tagen, Schritt für Schritt zum Profi) geschenkt. Vielleicht werde ich ja auch mal Experte. ;)
Danke nochmals für deine Arbeit.
Bild

Betrifft: Bin auch noch nicht Experte -)
von: Walter
Geschrieben am: 15.12.2006 15:27:59
Bild

Betrifft: Noch Hinweis
von: Walter

Geschrieben am: 16.12.2006 11:15:55
Hallo Ralf,
habe gerade auf Rechner mit Excel 2000 getestet, Fehlermeldung.
Hiermit gibt es keine Fehler und entsprechend die With Anweisung so ändern Bildschirm
bleibt dann normal !
With Application
' .Calculation = xlCalculationManual
.ScreenUpdating = False
' .EnableEvents = False
End With
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=True, Space:=False, Other:=False, FieldInfo:= _
Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1))
Range("A1").Select
ans Ende:
With Application
' .Calculation = xlCalculationAutomatic
.ScreenUpdating = True
' .EnableEvents = True
End With
Schönes Wochenende
mfg Walter
 Bild
Excel-Beispiele zum Thema "Daten eine *.CSV-Datei herausfiltern"
Export in *.CSV-Datei mit Kommata als Feldtrenner Zeilenumbrüche in eine *.CSV-Datei übernehmen