Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1880to1884
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro -> Formatierung csv Datei

Makro -> Formatierung csv Datei
29.04.2022 15:50:35
sigi
Hallo zusammen
Ich würde gerne mittels einem Makro eine csv-Datei öffnen, dort mittels "Text in Spalten" die Trennung in die Spalten vornehmen und gleichzeitig die Spalte 8 als Textfeld formatieren. Wenn ich es händisch mache, funktioniert es wunderbar. Das aufgezeichnete Makro hingegen funktioniert auch, aber die Spalte 8 formatiert er nicht als Text.
Was ist an diesem Makro falsch?

Sub Datenimportieren()
' Datenimportieren Makro
ActiveSheet.ShowAllData
Range("A2:N2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("A2").Select
Workbooks.Open Filename:= _
"xxxxx"
Range(Selection, Selection.End(xlDown)).Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, 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, 2), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
)), TrailingMinusNumbers:=True
Range("A2:M2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("Abgleich WS007-Journal MS_2022-04-19_REWE.xlsm").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("H2").Select
Selection.Copy
Range("H2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
Dim strDateiname As String
ChDrive "Q:\"
ChDir "\xxxxxx"
Application.Dialogs(xlDialogSaveAs).Show
End Sub
Vielen Dank für eure Antwort.
Gruss Sigi

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro -> Formatierung csv Datei
29.04.2022 15:55:30
Oberschlumpf
Hi Sigi,
erst mal ist dein Makro noch sehr "aufgebläht".
Grunsätzlich gilt: fast jeder .Select-Befehl könnte abgekürzt werden, was zur Folge hätte, dass der wirklich erforderliche Code-Teil sehr viel kleiner und somit einfacher zu korrigieren wäre - wenns denn mal zu anderen Fehlern kommt...
Schön wäre jetzt, wenn du uns per Upload eine Bsp-CSV-Datei mit Bsp-Inhalten zeigst, damit wir deinen Code testen + anpassen können - damit eben auch das Txt-Format in Spalte 8 funktioniert.
Ciao
Thorsten
AW: Makro -> Formatierung csv Datei
29.04.2022 16:06:48
sigi
Hallo Thorsten
Danke für deine Antwort. Eine csv-Datei wird zum upload nicht akzeptiert. Wie soll ich das zur Verfügung stellen?
Danke und Gruss
Sigi
Anzeige
AW: Makro -> Formatierung csv Datei
29.04.2022 16:08:41
Oberschlumpf
Hi Sigi,
mach aus der csv-Datei mit 7Zip oder WinRar oder oder oder eine ZIP-Datei und lad dann die ZIP-Datei hoch.
Ciao
Thorsten
Ändert die Endung in ".txt" und sagt es im Text ..
29.04.2022 19:04:49
Yal
dass es ein csv ist.
VG
Yal
AW: Makro -> Formatierung csv Datei
02.05.2022 08:35:38
Oberschlumpf
Hi,
hier nun die Excel- wie auch die csv-Datei zurück in einer ZIP-Datei, die du erst mal entpacken musst, bevor du die Excel-Datei startest.
https://www.herber.de/bbs/user/152794.zip
Ich hab deinen Code ein wenig "geschrumpft"; leider konnte ich nicht alle Select-Zeilen ersetzen; dafür hätte ich vieles umprogrammieren müssen.
Nun denn, die Inhalte in Spalte H werden nun als Zahlen dargestellt.
Hilfts?
Ciao
Thorsten
Anzeige
AW: Makro -> Formatierung csv Datei
02.05.2022 09:00:33
sigi
Vielen Dank Thorsten
Es klappt, nur eben, die Spalte 8 beinhaltet normalerweise 18-20 Zahlen. Wenn ich diese als Zahl mittels Text in Spalten rüber nehme, werden die hintersten Stellen nicht korrekt übernommen sondern mit Nullen überschrieben. Deshalb möchte ich diese Spalte als TEXT rüber nehmen, so werden alle 18-20 Stellen korrekt dargestellt.
Deshalb meine Bitte, diese Spalte als TEXT zu übernehmen.
Danke für die weitere Hilfe.
Gruss Sigi
AW: Makro -> Formatierung csv Datei
02.05.2022 09:12:55
Oberschlumpf
upppssss!!!
Hi Sigi,
sorry - mein Fehler!
Ich hatte die ganze Zeit "gelesen", du willst Spalte 8 als ZAHL - aber nee! - das is ja falsch....sorry
Um dein Ziel zu erreichen, müsst ich mich jetzt etwas länger damit beschäftigen...leider hab ich jetzt keine Zeit mehr dazu.
Aber vielleicht, hoffentlich findet sich ja noch ein anderer Antworter.
Ciao
Thorsten
Anzeige
AW: Makro -> Formatierung csv Datei
02.05.2022 16:24:52
sigi
Ja ich wäre da um jeden Tipp sehr dankbar!
AW: Makro -> Formatierung csv Datei
02.05.2022 19:35:57
Yal
Hallo Sigi,
Tipp zum Spalten als Text zu formatieren:
Starte den Makrorekorder,
markiere die Spalte 8,
Rechtklick auf "Zellen formatieren",
"Text" auswählen, ok.
Makrorekorder stoppen, Code anschauen.
Es steht dann sowas wie:

Sub Makro1()
Columns("H:H").Select
Selection.NumberFormat = "@"
End Sub
und Thorsten es gesagt hat: die Select + Selection. ... ist nur das Abbild von 2 verschiedene Schritte, wenn sie per Hand gemacht werden. In VBA kann man diese zusammnfassen:

Sub Makro1()
Columns("H:H").NumberFormat = "@"
End Sub
Diese einzeiligen Code musst Du dann in deinem bisherige Werk reinbringen.
VG
Yal
Anzeige
AW: Makro -> Formatierung csv Datei
04.05.2022 16:02:37
sigi
Das Problem ist, die "nachträgliche" Umwandlung der Spalte 8 in ein Textfeld nützt nichts. Bei der Umwandlung des csv-Files bzw. der mit ";" getrennten Spalten in effektive Spalten (manuell mit der Funktion Text in Spalten) werden die letzten 3 Ziffern mit Nullen überschrieben anstelle die effektiven Zahlen zu übernehmen. Das Problem hier ist wohl, dass es sich um 18-20 Ziffern handelt.
Wie schon beschrieben, wenn ich das ganze manuell mittels "Text in Spalten" mache und dann die Reihe 8 als Textfeld markiere, funktioniert das Ganz wunderbar. Im Makro dann leider nicht.
AW: Makro -> Formatierung csv Datei
02.05.2022 20:04:13
Yal
Hallo Sigi,
mit dem Risiko, Dich zu überfordern: der Makrorekorder nimmt die Sache auf, in der Reihenfolge die Du sie macht. Es ist nicht unbedingt die Reihenfolge, die Sinn ergibt. Zum Beispiel: dein Code ist entstanden, als Du dich auf einem Blatt von Datei "Abgleich WS007-Journal MS_2022-04-19_REWE.xlsm" befand, welche wissen wir nicht, da rigendwo nur windows(...).Activate steht. Beim nächste mal heisst die Datei sicher nicht so.
Was aber sicher sein wird, ist dass Du in dem Blatt starten wird, wo Du möchtest, dass die Daten ankommen. Das müsstest Du im Code reinbringen.
Ansonsten, probiere den Code unten.
(ACHTE darauf, dass ein Verweis auf "Microsoft Scripting Runtime" notwendig ist. Es ist nur das Anbinden einer Bibliothek, die nicht standardmässig angebunden ist. Darin sind die Objekte FileSystemObjekt und Textstream definiert)
Starte immer diese Makro aus dem Blatt, wo Du möchtest, dass die Daten ankommen.

Sub Datenimportieren()
'"Extras", "Verweise...", Haken bei "Microsoft Scripting Runtime"
Dim FSO As New FileSystemObject
Dim Datei As TextStream
Dim Felder
ActiveSheet.ShowAllData
Rows(8).NumberFormat = "@"
Set Datei = FSO.OpenTextFile("xxxx")
Do While Not Datei.AtEndOfStream
Felder = Split(Datei.ReadLine, ",")
Range("A99999").End(xlUp).Offset(1, 0).Resize(1, UBound(Felder) + 1) = Felder
Loop
ChDrive "Q:\"
ChDir "\xxxxxx"
Application.Dialogs(xlDialogSaveAs).Show
End Sub
VG
Yal
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige