Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Export nach CSV (Format ANSI)

Export nach CSV (Format ANSI)
24.04.2009 08:17:55
Markus
Hallo,
das folgende Makro speichert eine Excel-Datei ins Format csv oder txt.
Trenner mit ;
Das gut sehr gut.
Nun benötige ich aber für den Import der Datei in eine Datenbank,
das amerikanische Format.
d.h. der Import geht jetzt schon gut, ausser das äöü und andere Sonderzeichen in der Datenbank nicht richtig dargestellt werden.
Wie kann ich diesem Makro beibringen, das es in ANSI-Format speichert (ich glaub das heisst so) .
Danke jetzt schon für jede Hilfe!
Markus
N.B. das folgende Makro habe ich schon aus diesem Formum kopiert, aber nirgends einen Hinweis auf die Speicherungsart gefunden.

Sub ExportAsCSV()
' Trenner ist ;
Dim strTxt, strMaske As String, iR As Long, iC As Integer
sFile = "c:\Export_aus_Excel_nach_ASCII.txt"
' strMaske = """" 'für ein "
Open sFile For Output As #1
For iR = 1 To ActiveSheet.UsedRange.Rows.Count
strTxt = ""
For iC = 1 To ActiveSheet.UsedRange.Columns.Count
strTxt = strTxt & strMaske & Cells(iR, iC) & strMaske & ";"
Next iC
strTxt = Left(strTxt, Len(strTxt) - 1)
Print #1, strTxt
Next iR
Close #1
MsgBox sFile & " exportiert!"
End Sub


Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Export nach CSV (Format ANSI)
24.04.2009 12:16:29
fcs
Hallo Markus,
Excel erstellt unter Windows standardmäßig Textdateien mit dem ANSI-Zeichensatz (bis zu 255 Zeichen). Evtl. ist dies auch noch betriebssystemabhängig, so dass Unicode-Zeichensatz produziert wird.
Falsche Darstellung der Deutschen Sonderzeichen deutet darauf hin, dass die Datenbank einen erweiterten ASCII-Zeichensatz mit länderspezifischer Einstellung verwendet.
Kann die Datenbank den überhaupt Umlaute und ß darstellen?
Wenn ja, dann könnte man die Umlaute und anderne Zeichen in dem Textstring mit zeichenweisem Vergleich durch entsprechend andere Zeichen ersetzen, die die Datenbank korrekt interpretiert.
Gruß
Franz

Sub ExportAsCSV()
' Trenner ist ;
Dim strTxt, strMaske As String, iR As Long, iC As Integer
Dim sFile As String, iPos As Long, sZeichen As String, strNeu As String
sFile = "c:\Lokale Daten\Test\Export_aus_Excel_nach_ASCII.txt"
' strMaske = """" 'für ein "
Open sFile For Output As #1
For iR = 1 To ActiveSheet.UsedRange.Rows.Count
strTxt = ""
For iC = 1 To ActiveSheet.UsedRange.Columns.Count
strTxt = strTxt & strMaske & Cells(iR, iC) & strMaske & ";"
Next iC
strTxt = Left(strTxt, Len(strTxt) - 1)
strNeu = ""
For iPos = 1 To Len(strTxt)
sZeichen = Mid(strTxt, iPos, 1)
Select Case sZeichen
'Welches die Ersatznummern sein müssen, muss du aus einer _
Zeichensatztabelle ermitteln
Case "ä"
sZeichen = Chr(187) ' »
Case "Ä"
sZeichen = Chr(134) ' †
Case "ö"
sZeichen = Chr(189) ' ½
Case "Ö"
sZeichen = Chr(135) ' ‡
'usw.
Case Else
'do nothing
End Select
strNeu = strNeu & sZeichen
Next
strTxt = strNeu
Print #1, strTxt
Next iR
Close #1
MsgBox sFile & " exportiert!"
End Sub


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel: Export nach CSV im ANSI-Format


Schritt-für-Schritt-Anleitung

Um eine Excel-Datei im ANSI-Format als CSV zu exportieren, kannst Du das folgende VBA-Makro verwenden. Dieses Makro speichert Deine Daten und stellt sicher, dass Sonderzeichen korrekt behandelt werden.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Gehe zu Einfügen -> Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Sub ExportAsCSV()
    ' Trenner ist ;
    Dim strTxt, strMaske As String, iR As Long, iC As Integer
    Dim sFile As String
    sFile = "c:\Export_aus_Excel_nach_ASCII.txt"
    Open sFile For Output As #1
    For iR = 1 To ActiveSheet.UsedRange.Rows.Count
        strTxt = ""
        For iC = 1 To ActiveSheet.UsedRange.Columns.Count
            strTxt = strTxt & Cells(iR, iC) & ";"
        Next iC
        strTxt = Left(strTxt, Len(strTxt) - 1)
        Print #1, strTxt
    Next iR
    Close #1
    MsgBox sFile & " exportiert!"
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Führe das Makro aus, um die Datei zu exportieren.

Damit wird die Datei im ANSI-Format gespeichert, was für die korrekte Darstellung von Sonderzeichen in Datenbanken wichtig ist.


Häufige Fehler und Lösungen

  • Sonderzeichen werden nicht richtig dargestellt: Stelle sicher, dass die Datenbank den ANSI-Zeichensatz unterstützt. Wenn nicht, könnte es notwendig sein, die Zeichen im Textstring mit einer Ersatzmethode zu ersetzen.

  • Datei wird nicht gespeichert: Überprüfe, ob der angegebene Speicherort (z.B. c:\) existiert und Du die erforderlichen Berechtigungen hast.


Alternative Methoden

Falls Du keine VBA-Makros verwenden möchtest, kannst Du die Datei auch manuell als CSV im ANSI-Format speichern:

  1. Gehe zu Datei -> Speichern unter.
  2. Wähle im Dropdown-Menü den Dateityp .csv (Comma delimited).
  3. Achte darauf, dass Du den richtigen Zeichensatz auswählst, falls die Option verfügbar ist.

Praktische Beispiele

Hier ist ein Beispiel, wie Du Umlaute und Sonderzeichen im Makro ersetzen kannst:

For iPos = 1 To Len(strTxt)
    sZeichen = Mid(strTxt, iPos, 1)
    Select Case sZeichen
        Case "ä"
            sZeichen = Chr(187) ' »
        Case "ö"
            sZeichen = Chr(189) ' ½
        ' Weitere Ersetzungen hier hinzufügen
    End Select
    strNeu = strNeu & sZeichen
Next

Diese Methode hilft, die korrekte Darstellung in der Datenbank sicherzustellen.


Tipps für Profis

  • Nutze den Option Explicit-Befehl am Anfang Deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind.
  • Teste Dein Makro mit einer kleinen Menge an Daten, bevor Du es auf größere Datensätze anwendest.
  • Berücksichtige die Verwendung von Unicode, wenn Du mit internationalen Zeichen arbeitest, auch wenn das ANSI-Format für viele Anwendungen ausreicht.

FAQ: Häufige Fragen

1. Wie kann ich eine ANSI-Datei in Excel umwandeln?
Um eine ANSI-Datei in Excel zu importieren, öffne Excel, gehe zu Daten -> Daten abrufen und wähle Aus Text/CSV. Folge den Eingabeaufforderungen, um die Datei zu importieren.

2. Warum wird mein CSV nicht korrekt dargestellt?
Das kann an der falschen Zeichencodierung liegen. Stelle sicher, dass Du beim Export das richtige Format (ANSI) auswählst und die Datenbank entsprechend konfiguriert ist, um ANSI-Zeichensatz zu unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige