Hallo!
Seit einiger Zeit versuche ich vergeblich, per VBA-Makro eine CSV-Datei einzufügen. Mit einem schnöden Doppelklick auf diese CSV-Datei wird sie in Excel geöffnet und komplett richtig dargestellt.
Beim öffnen per Makro wird die Formatierung jedoch zerhauen.
Die CSV-Datei ist in ordnung.
Meine Versuche sehen bislang so aus:
-
Regions und Sprachoptionen (Punkt und Komma, Listentrennzeichen, alles überprüft).
-
Sub oeffnen()
Application.ScreenUpdating = False
oeffnen = Application.GetOpenFilename(filefilter:=„Text Files _
(*.csv), *.csv“, Title:=„Wähle Importdatei aus!“, _
MultiSelect:=False)
If TypeName(oeffnen) = „Boolean“ Then GoTo Ende
Workbooks.Open oeffnen
Ende:
Application.ScreenUpdating = True
End Sub
-
Sub oeffnen()
Application.ScreenUpdating = False
oeffnen = Application.GetOpenFilename(filefilter:=„Text Files _
(*.csv), *.csv“, Title:=„Wähle Importdatei aus!“, _
MultiSelect:=False)
If TypeName(oeffnen) = „Boolean“ Then GoTo Ende
Workbooks.OpenText Filename:=oeffnen, Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, _
Tab:=False, Semicolon:=True, Comma:=False, Space:=False, _
Other:=False
Ende:
Application.ScreenUpdating = True
End Sub
Ich hab keine Ahnung warum die Datei falsch angezeigt wird. Wenn ich die CVS-Datei mit Notepad öffne und dort als .txt speichere, dann Lösung 3 (s.o.) laufen lasse, so wird alles wie gewünscht dargestellt.
Ich bin dankbar für jede Hilfe!
Gruß,
Ben
Seit einiger Zeit versuche ich vergeblich, per VBA-Makro eine
CSV-Datei einzufügen. Mit einem schnöden Doppelklick auf diese
CSV-Datei wird sie in Excel geöffnet und komplett richtig
dargestellt.
Beim öffnen per Makro wird die Formatierung jedoch zerhauen.
Die CSV-Datei ist in ordnung.
lade mal mit FAQ:2861 eine csv-Datei hoch wo dies geshieht.
Gruß
Reinhard
Hallo Reinhard,
Danke für dein Antwort.
Ich verzichte an dieser Stelle auf das Hochladen, da das öffnen mit einer anderen Methode funktioniert hat. Warum meine erste Version nicht funktionierte, weiß ich aber immer noch nicht. Nuja. Hier die Möglichkeit, die ich jetzt gefunden habe:
Dim aktDatei As String
Dim Dateiname
aktDatei = ThisWorkbook.Name
Dateiname = Application.GetOpenFilename("Textdateien " & _
„(*.txt; *.csv;*.asc),*.txt; *.csv; *.asc“, _ Title:=„WähleImportdatei aus, alter ey!“, MultiSelect:=False)_
Workbooks.OpenText Filename:=Dateiname, DataType:=xlDelimited, _
TextQualifier:=xlTextQualifierNone, Local:=True
Aber danke für deine Hilfsbereitschaft von der hier im Forum anscheinend schon viele profitiert haben: weiter so!
Gruß,
Ben
Hallo Ben!
Das ist ein Bug* in Excel. Je nachdem wie die Dateiendung lautet (csv, txt) und wie man die Datei öffnet (Mit Doppelklick im Explorer, Mit Datei-Öffnen aus Excel heraus), werden die Trennzeichen ( , oder ; ) anders interpretiert.
Man kann sich aber damit behelfen, über Daten->Externe Daten importieren->Daten importieren… die entsprechende Datei zu importieren. In diesem Vorgang kann man dann die Zeichencodierung, die Trennungsart und die Trennungszeichen selbst bestimmen.
Diesen Vorgang kann man aber auch ganz leicht mit VBA (beziehungsweise auch mit VBS) automatisieren.
mfg
christoph
*) It’s not a bug, it’s a feature