Collapse column

Autor Thema: Office 2016 CSV-Export - Falsches Trennzeichen  (Gelesen 1012 mal)

Offline FlorianF

  • Jr. Member
  • **
  • Beiträge: 62
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2016
Office 2016 CSV-Export - Falsches Trennzeichen
« am: August 02, 2017, 10:17:46 Vormittag »
Hi Leute,

kann mir jemand sagen, warum dieser Code als Trennzeichen ein Komma und kein Semikolon ausgibt? Ich raff es nicht...

Sub CSVExportieren(strExporttabelle As String, strTitel As String)

    Dim strDateiname As String
    Dim lngZeilen As Long, lngSpalten As Long
    Dim lngZeile As Long, lngSpalte As Long
    Dim Data
    Dim rngExportbereich As Range
   
    Set rngExportbereich = ThisWorkbook.Worksheets(strExporttabelle).UsedRange
    lngSpalten = rngExportbereich.Columns.Count
    lngZeilen = rngExportbereich.Rows.Count
    strDateiname = Application.GetSaveAsFilename(FileFilter:="csv-Dateien (*.csv), *.csv", Title:=strTitel)
   
    Open strDateiname For Output As #1
   
    For lngZeile = 1 To lngZeilen
        For lngSpalte = 1 To lngSpalten
            Data = rngExportbereich.Cells(lngZeile, lngSpalte).Value
            If IsDate(Data) Then
            Else: If IsNumeric(Data) Then Data = Val(Data)
            End If
            If IsEmpty(rngExportbereich.Cells(lngZeile, lngSpalte)) Then Data = ""
            If lngSpalte <> lngSpalten Then
                Write #1, Data;
            Else
                Write #1, Data
            End If
        Next lngSpalte
    Next lngZeile
    Close #1

End Sub

Danke euch!!

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline FlorianF

  • Jr. Member
  • **
  • Beiträge: 62
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2016
Antw:Office 2016 CSV-Export - Falsches Trennzeichen
« Antwort #1 am: August 03, 2017, 14:00:30 Nachmittag »
Hat hierzu jemand noch eine Idee? Finde im Internet null Anhaltspunkte woran es liegen könnte.  :-\

Offline gmg-cc

  • Hero Member
  • *****
  • Beiträge: 1.321
    • Profil anzeigen
    • Meine Webseite
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Gut
  • Version [Office] : Office 2016
Antw:Office 2016 CSV-Export - Falsches Trennzeichen
« Antwort #2 am: August 03, 2017, 14:29:20 Nachmittag »
Ich weiß, das hört sich sarkastisch an:, entspricht aber fast immer den Tatsachen:
Wenn ich irgendwelchen Code aus dem Internet abschreibe ohne ihn zu verstehen oder nachvollziehen zu können, dann kommt so etwas dabei heraus.
Umsonst ist nun ab und zu auch umsonst (im doppelten Sinne). Wenn ich mein Problem in fachkundige Hände (eines Dienstleisters) gebe, dann hat der a) mehr Wissen als ich (zumindest meistens) und b) hat der auch die Verantwortung. Klar, der kostet etwas, aber wenn dir (oder deinem Chef) deine Arbeit nichts Wert ist ...

Btw: VBA ist ein US-Produkt und da ist das Komma nun einmal das Trennzeichen für CSV, wie auch schon der Name sagt. Also hat das etwas mit den localen Gegebenheiten zu tun.
« Letzte Änderung: August 03, 2017, 14:31:28 Nachmittag von gmg-cc »
Gruß
Günther

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw:Office 2016 CSV-Export - Falsches Trennzeichen
« Antwort #3 am: August 03, 2017, 16:17:56 Nachmittag »
Hallo,

anbei ein Code, wie man beispielsweise sowas machen kann. Anpassen an Deine Bedürfnisse musst Du es aber schon selber.
Der Code, den Du, wie von Günther vermutet, wohl irgendwo kopiert hast, ist zu umständlich.

Code: Visual Basic
  1.   Sub ExportAsCSV()
  2.    
  3.     Dim h As Long
  4.     Dim n As Long
  5.     Dim p As Long
  6.    
  7.     Dim f As String
  8.     Dim v As String
  9.    
  10.     Dim d As Variant
  11.    
  12. '   Array...
  13.    
  14.     d = ThisWorkbook.Worksheets(1).Range("B2:D6").Value
  15.    
  16. '   Datei...
  17.    
  18.     f = "E:\Temp\" & "Test-" & Format(Now, "yyyy.mm.dd-hh.mm.ss") & ".csv"
  19.    
  20. '   Loop...
  21.    
  22.     For n = LBound(d, 1) To UBound(d, 1)
  23.    
  24.       For p = LBound(d, 2) To UBound(d, 2)
  25.        
  26.         If p > LBound(d, 2) Then
  27.          
  28.           v = v & ";" & CStr(d(n, p))
  29.        
  30.         Else
  31.          
  32.           v = v & CStr(d(n, p))
  33.          
  34.         End If
  35.        
  36.       Next
  37.      
  38.       v = v & vbCrLf
  39.      
  40.     Next
  41.    
  42. '   Dateinummer...
  43.    
  44.     h = FreeFile
  45.    
  46. '   Schreiben...
  47.    
  48.     Open f For Binary Access Write As #h
  49.     Put #h, , v
  50.     Close #h
  51.    
  52.   End Sub

Gruß
« Letzte Änderung: August 03, 2017, 16:20:40 Nachmittag von maninweb »
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline FlorianF

  • Jr. Member
  • **
  • Beiträge: 62
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2016
Antw:Office 2016 CSV-Export - Falsches Trennzeichen
« Antwort #4 am: August 03, 2017, 16:52:27 Nachmittag »
Ich weiß, das hört sich sarkastisch an:, entspricht aber fast immer den Tatsachen:
Wenn ich irgendwelchen Code aus dem Internet abschreibe ohne ihn zu verstehen oder nachvollziehen zu können, dann kommt so etwas dabei heraus.
Umsonst ist nun ab und zu auch umsonst (im doppelten Sinne). Wenn ich mein Problem in fachkundige Hände (eines Dienstleisters) gebe, dann hat der a) mehr Wissen als ich (zumindest meistens) und b) hat der auch die Verantwortung. Klar, der kostet etwas, aber wenn dir (oder deinem Chef) deine Arbeit nichts Wert ist ...

Btw: VBA ist ein US-Produkt und da ist das Komma nun einmal das Trennzeichen für CSV, wie auch schon der Name sagt. Also hat das etwas mit den localen Gegebenheiten zu tun.

Du liegst mit all deinen Annahmen falsch ;) Den Code habe ich nicht aus dem Internet kopiert sondern aus einem VBA-Buch abgeschrieben, dort ist er auch erläutert und ich verstehe ihn bis darauf, dass er nicht wie gewünscht das Semikolon sondern ein Komma setzt.
Das Problem liegt bei mir sozusagen in fachkundigen Händen, da ich im Rahmen meiner Beratungstätigkeit seit einigen Jahren Tools in VBA für meine Kunden entwickle. Ich verdiene also Geld damit und gebe keines dafür aus. Hin und wieder treten jedoch Probleme auf, für die ich keine Erklärung finde oder einen Fehler "übersehe". Ich denke, das geht jedem so.
Was die eigentliche Problemlösung angeht habe ich vermutet, dass es an den Local-Einstellungen liegt, habe auch alles was ich in Excel dazu gefunden habe geprüft und es entspricht den "deutschen Standards".
Ich wäre dir daher zutiefst dankbar, wenn Du mir die Lösung verrätst :)


Hallo,

anbei ein Code, wie man beispielsweise sowas machen kann. Anpassen an Deine Bedürfnisse musst Du es aber schon selber.
Der Code, den Du, wie von Günther vermutet, wohl irgendwo kopiert hast, ist zu umständlich.

Habe es mittlerweile auf ähnliche Weise wie du gebaut und es funktioniert. Hab nur anstatt der "Bounds" mit der UsedRange gearbeitet.

Danke euch!!

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline gmg-cc

  • Hero Member
  • *****
  • Beiträge: 1.321
    • Profil anzeigen
    • Meine Webseite
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Gut
  • Version [Office] : Office 2016
Antw:Office 2016 CSV-Export - Falsches Trennzeichen
« Antwort #5 am: August 03, 2017, 17:30:43 Nachmittag »
Moin,
ich sage mal nichts dazu, Herr Kollege. Hier ein Link zu einem anderen Forum: http://www.herber.de/forum/archiv/636to640/636298_VBA_keine_laenderspez_Formate_beim_CSVSpeichern.html
Und nun rate mal, warum ich "locales" mit "c" geschrieben hatte ...

Ich bin übrigens auch Autodidakt und habe recht oft lernen müssen, dass auch in dieser Branche einer von anderen abschreibt und das dann in Büchern veröffentlicht. Meist wird ein Code dadurch nicht besser. Leider gab es in meinen Anfangszeiten noch nicht das Internet in dieser Form (ich fing mit einem Akustikkoppler an  :o) und musste mich durch mehrere Quellen (Bücher) quälen, um zu tragbaren Ergebnissen zu kommen.
Gruß
Günther

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.