Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Speichern im FileFormat:=xlText

Betrifft: Speichern im FileFormat:=xlText von: Heiko
Geschrieben am: 18.08.2004 18:03:24

Hallo Leute,

hab ein schon oft gepostedes Problem. Mit einem Makro speichere ich eine Arbeitsmappe im .txt Format automatisch.

ActiveWorkbook.SaveAs Pfad & Name, FileFormat:=xlText

Dabei ändert sich das Zahlenformat, es erscheint in der .txt Datei ein Punkt statt des Kommas.
So wird aus: 15,587 - 15.587

Für die weiter Bearbeitung der .txt Datei ist es aber wichtig das Zahlen in Kommaschreibweise angegeben werden.
An der Ländereinstellung kann es aber nicht liegen da habe ich schon geschaut. (von amerkanisch auf deutsch gestellt)

Kann man das Problem irgendwie lösen?

Gruß Heiko

  


Betrifft: AW: Speichern im FileFormat:=xlText von: ChrisL
Geschrieben am: 18.08.2004 19:02:02

Hi Heiko

Wie du schon selber sagst, das Problem wurde schon oft gepostet, drum hast du sicher die Recherche durchsucht. Jedenfalls ist es keine Woche her, seit ich dieses Makro in einem ähnlichen Zusammenhang gepostet habe...

Sub CSVExport()
Dim sFile As Variant, msgAntwort As Variant
Dim Daten As Range, Zeile As Object, Zelle As Object
Dim strTemp As String

On Error GoTo errorhandler

With ActiveSheet

    sFile = Application.GetSaveAsFilename(InitialFilename:="DeineVorgabe" & ".csv", _
    FileFilter:="CSV-Datei (*.csv), *.csv")
    If sFile = False Then Exit Sub

    If Dir(sFile) <> "" Then
        msgAntwort = MsgBox("Die Datei '" & sFile & "' besteht bereits. Möchten Sie die bestehende Datei ersetzen?", _
        vbQuestion + vbYesNo, "Warnung")
        If msgAntwort = vbNo Then Exit Sub
    End If

    Set Daten = .UsedRange
    Close
    Open sFile For Output As #1
  
    For Each Zeile In Daten.Rows
        
        For Each Zelle In Zeile.Cells
            If Zelle.Column = 1 Then
                strTemp = Zelle
            Else
                strTemp = strTemp & ";" & Zelle
            End If
        Next Zelle
        
        Print #1, strTemp
        strTemp = ""
    
    Next Zeile

    Close #1

End With

MsgBox "Die Datei wurde erfolgreich exportiert.", vbInformation, "Export erfolgreich"

Exit Sub
errorhandler:
MsgBox "Es ist ein Fehler aufgetreten. Die Datei konnte nicht vollständig exportiert werden.", vbCritical, "Fehlermeldung"
End Sub



Gruss
Chris


  


Betrifft: AW: Speichern im FileFormat:=xlText von: Heiko
Geschrieben am: 19.08.2004 09:12:49

Erstmal vielen Dank für die schnelle Antwort Chris.

An Speichern im .csv Format hatte ich auch schon gedacht - ich werde es jetzt so machen.

Gruss Heiko


  


Betrifft: AW: Speichern im FileFormat:=xlText von: Heiko
Geschrieben am: 19.08.2004 11:17:16

Ich Hab es mal getestet.

Ich habe jetzt nicht mehr das Problem mit dem Punkt und Komma.
Jedoch habe ich in einer Spalte Uhrzeiten aufgeführt und die werden jetzt als Zahl behandelt. Also ein Problem gelöst und ein neues verursacht ;o)

aus 00:15 wird 17,0104166666667

Kann man das Problem in der .csv Datei beheben?

Gruss Heiko


  


Betrifft: AW: Speichern im FileFormat:=xlText von: ChrisL
Geschrieben am: 19.08.2004 13:04:55

Hi Heiko

Ob CSV oder TXT ist eigentlich egal.

Wenn die Zeiten in einer bestimmten Spalte stehen, kannst du sie spezifisch formatieren. Im nachstehenden Beispiel werden Zeiten aus Spalte B (2) als "hh:mm" formatiert.

Gruss
Chris


Sub TXTExport()
Dim sFile As Variant, msgAntwort As Variant
Dim Daten As Range, Zeile As Object, Zelle As Object
Dim strTemp As String

On Error GoTo errorhandler

With ActiveSheet

    sFile = Application.GetSaveAsFilename(InitialFilename:="DeineVorgabe" & ".txt", _
    FileFilter:="TXT-Datei (*.txt), *.txt")
    If sFile = False Then Exit Sub

    If Dir(sFile) <> "" Then
        msgAntwort = MsgBox("Die Datei '" & sFile & "' besteht bereits. Möchten Sie die bestehende Datei ersetzen?", _
        vbQuestion + vbYesNo, "Warnung")
        If msgAntwort = vbNo Then Exit Sub
    End If

    Set Daten = .UsedRange
    Close
    Open sFile For Output As #1
  
    For Each Zeile In Daten.Rows
        
        For Each Zelle In Zeile.Cells
            If Zelle.Column = 1 Then
                strTemp = Zelle
            Else
                If Zelle.Column = 2 And IsNumeric(Zelle) Then
                    strTemp = strTemp & ";" & Format(Zelle, "hh:mm")
                Else
                    strTemp = strTemp & ";" & Zelle
                End If
            End If
        Next Zelle
        
        Print #1, strTemp
        strTemp = ""
    
    Next Zeile

    Close #1

End With

MsgBox "Die Datei wurde erfolgreich exportiert.", vbInformation, "Export erfolgreich"

Exit Sub
errorhandler:
MsgBox "Es ist ein Fehler aufgetreten. Die Datei konnte nicht vollständig exportiert werden.", vbCritical, "Fehlermeldung"
End Sub



  


Betrifft: AW: Speichern im FileFormat:=xlText von: Heiko
Geschrieben am: 19.08.2004 17:37:30

jep Funktioniert jetzt so wie es soll!!

Besten DANK Chris


 

Beiträge aus den Excel-Beispielen zum Thema "Speichern im FileFormat:=xlText"