Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
672to676
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
672to676
672to676
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro: als csv-Datei speichern mit Dezimalkomma

Makro: als csv-Datei speichern mit Dezimalkomma
29.09.2005 11:42:35
Christian
Hallo VBA-Profis,
ich möchte per Makro eine Tabelle als csv-Datei speichern.
Dabei sollen die mit Dezimalkomma formatierten Zahlenwerte(deutsches Zahlenformat) der Arbeitsmappe (z.B. 12,34) auch in der csv-Datei mit einem Dezimalkomma erscheinen.
Ich glaube dieses Problem wurde schon mehrfach angesprochen, allerdings habe
ich bisher noch keine Lösung gefunden.
Hier mein kläglicher Versuch das Problem zu beheben:

Sub test()
Range("A1:A2").Select
Selection.NumberFormat = "@"
ActiveWorkbook.SaveAs Filename:= _
"test.csv", FileFormat:=xlCSV, _
CreateBackup:=False
End Sub

Gruß, C

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro: als csv-Datei speichern mit Dezimalkomma
29.09.2005 11:54:52
benjamin
Hi,
das habe ich auch noch nicht rausgefunden ;-))
Umgehe es immer in dem ich in einer neuen Spalte die Spaltenwerte mit '' am Anfang und Ende der Felder verkette. Also ="'"&A1&"',"&"'"&A2"'" usw.
Dann die Formeln in Werte umwandeln, die anderen Spalten löschen und dann txt speichern.
Gruß
AW: Makro: als csv-Datei speichern mit Dezimalkomma
29.09.2005 12:49:42
Nepumuk
Hi,
ist doch ganz einfach:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Sub prcCreateCSV()
    Dim intFileNumber As Integer
    Dim lngRow As Long
    Dim vntArray As Variant
    Dim strText As String
    Reset
    intFileNumber = FreeFile
    With ThisWorkbook
        .Save
        Open .Path & "\" & Left$(.Name, Len(.Name) - 4) & _
            ".csv" For Output As #intFileNumber
    End With
    With ActiveSheet.UsedRange
        For lngRow = 1 To .Row + .Rows.Count - 1
            vntArray = Range(Cells(lngRow, 1), _
                Cells(lngRow, .Column + .Columns.Count - 1))
            vntArray = WorksheetFunction.Transpose( _
                WorksheetFunction.Transpose(vntArray))
            strText = Join(vntArray, ";")
            Print #intFileNumber, strText
        Next
    End With
    Close #intFileNumber
End Sub

Gruß
Nepumuk

Anzeige
Danke!!!!
29.09.2005 13:01:00
Christian
Vielen Dank für die Lösung!
Gruß
Christian
AW: Makro: als csv-Datei speichern mit Dezimalkomma
29.09.2005 13:08:33
Uduuh
Hallo Max,
ist das jetzt eine Auswirkung deiner Zwangsruhe?
Zumindest deinem Kopf geht's gut. Dem Rest hoffentlich auch.
Was hat es mit der doppelten Transponiererei auf sich? Das blick ich nicht so ganz.
Gruß aus’m Pott
Udo

AW: Makro: als csv-Datei speichern mit Dezimalkomma
29.09.2005 13:16:02
Nepumuk
Hallo Udo,
das macht aus dem zweidimensionalen Array ein eindimensionales. Damit kann ich dann mit Join weiterarbeiten und muss nicht jeden Wert einzeln, per Schleife, dem String hinzufügen.
Gruß
Nepumuk

Anzeige
AW: Makro: als csv-Datei speichern mit Dezimalkomma
29.09.2005 13:23:37
Uduuh
Hallo,
danke für die Erläuterung.
Das hat wirklich mal die Bezeichnung 'genial' verdient.
Gruß aus’m Pott
Udo

331 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige