Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1928to1932
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
Inhaltsverzeichnis

Bereiche als CSV exportieren

Bereiche als CSV exportieren
24.05.2023 14:12:16
hkoepp63

Hallo Zusammen,
ich habe da mal wieder ein Problem.

Ich muss aus einer Excel Datei aus 3 verschiedenen Spalten Daten (ohne Leerzeilen) in eine csv Datei exportieren.
Die Inhalte sind durch Semikolon zu trennen und haben am Anfang und am ende ein Ausrufezeichen.
Die weitere Schwierigkeit ist, dass ich aus zwei Spalten die Informationen zusammenführen muss und
in den letzten beiden Spalten die Anzahl der Artikel mit Semikolon auffüllen muss.

Die komplette Datei soll mit den übertragenen Informationen dann als CSV im UTF-8 exportiert werden mit dem Namen aus A2.

Anbei sende ich Euch die Beispieldatei. Vielen Dank schon einmal im Voraus.

https://www.herber.de/bbs/user/159300.xlsx

Beste Grüße
Hinnerk

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereiche als CSV exportieren
24.05.2023 15:22:58
Sigi.21
Hallo Hinnerk,

Zitate: "aus 3 verschiedenen Spalten Daten" und "in den letzten beiden Spalten".
Warum sagst du nicht, welche Spalten das jeweils sind? Müssen wir jetzt raten?

Gruß Sigi


AW: Bereiche als CSV exportieren
24.05.2023 15:51:00
hkoepp63
Sorry, hier eine hoffentlich verständlichere Erklärung.
Wenn im Reiter export in G ein Faktor steht, dann muss im Reiter csv_datei in J "Menge(N)*Faktor(G)" stehen.
ansonsten nur die Menge(N) aus export.

Beispiel export:

Position (C) Faktor (G) Menge (N)
123456789 1,5 958
123456987 777

Beispiel csv_datei:

Menge (J)
"958*1,5"
"777"

Wenn der Faktor leer oder 0 ist, dann wird nur die Menge übernommen, ansonsten die Formel: Menge * Faktor.
Beste Grüße
Hinnerk


Anzeige
AW: Bereiche als CSV exportieren
24.05.2023 16:07:34
UweD
Hallo

deine Beispieldatei: wie kommst du auf 1,15? Müsste doch 1,5 sein, oder?

Versuch das mal so.
Option Explicit

Sub Exporten()
    Dim LR As Integer, i As Integer
    Dim TB1 As Worksheet, TB2 As Worksheet
    Dim SRV As String, Mng As String, LTxt As String, STxt As String
    Dim Pfad As String, Datei As String, Ext As String
    
    Set TB1 = Sheets("export")
    Set TB2 = Sheets("csv_datei")
    
    Pfad = "E:\Excel\Temp\" 'mit \ am Ende
    Ext = ".csv"
    
    'reset
    TB2.Range("I2:L2").ClearContents
    
    With TB1
        LR = .Cells(.Rows.Count, "C").End(xlUp).Row 'letzte Zeile der Spalte
        
        For i = 2 To LR
            If .Cells(i, 3) > "" Then
                SRV = SRV & ";" & .Cells(i, 3)
                Mng = Mng & ";" & .Cells(i, 14) & "*" & .Cells(i, 7)
                
                LTxt = LTxt & ";"
                STxt = STxt & ";"
                
            End If
        Next        
        
    End With
    With TB2
        Datei = .Cells(2, 1)
        
        .Cells(2, 9) = """" & Mid(SRV, 2) & """"  'erste Semi wird weggelassen
        .Cells(2, 10) = """" & Mid(Mng, 2) & """"
    
        .Cells(2, 11) = LTxt
        .Cells(2, 12) = STxt
    
    End With
    
    ActiveWorkbook.SaveAs Filename:=Pfad & Datei & Ext, FileFormat:=xlCSVMSDOS, Local:=True
    
End Sub
  • Wenn in einer Zelle Semikolon enthalten sind, werden beim exportieren automatisch Anführungszeichen ergänzt.
    Also können die im Code weggelassen werden
    Das kannst du aber selbst ändern
  • UTF-8 wird bei xlCSVMSDOS verwendet
  • Local:=True Der lokal eingestellte Trenner (;)

    LG UweD


  • Anzeige
    AW: Bereiche als CSV exportieren
    24.05.2023 16:27:02
    UweD
    mit deiner Ergänzung Wenn der Faktor leer oder 0 ist, dann wird nur die Menge übernommen, ansonsten die Formel: Menge * Faktor.
    und ohne ""
    Option Explicit
    
    Sub Exporten()
        Dim LR As Integer, i As Integer
        Dim TB1 As Worksheet, TB2 As Worksheet
        Dim SRV As String, Mng As String, LTxt As String, STxt As String
        Dim Pfad As String, Datei As String, Ext As String
        
        Set TB1 = Sheets("export")
        Set TB2 = Sheets("csv_datei")
        
        Pfad = "E:\Excel\Temp\" 'mit \ am Ende
        Ext = ".csv"
        
        'reset
        TB2.Range("I2:L2").ClearContents
        
        With TB1
            LR = .Cells(.Rows.Count, "C").End(xlUp).Row 'letzte Zeile der Spalte
            
            For i = 2 To LR
                If .Cells(i, 3) > "" Then
                    SRV = SRV & ";" & .Cells(i, 3)
                    Select Case .Cells(i, 7)
                        Case "", 0, 1
                            Mng = Mng & ";" & .Cells(i, 14)
                        Case Else
                            Mng = Mng & ";" & .Cells(i, 14) & "*" & .Cells(i, 7)
                    
                    End Select
                    
                    LTxt = LTxt & ";" '& ????
                    STxt = STxt & ";" '& ????
                    
                End If
            Next
            
            
        End With
        With TB2
            Datei = .Cells(2, 1)
            
            .Cells(2, 9) = Mid(SRV, 2)    'erste Semi wird weggelassen
            .Cells(2, 10) = Mid(Mng, 2)
        
            .Cells(2, 11) = LTxt
            .Cells(2, 12) = STxt
            
            'Blatt auswählen, nur das Aktive wird exportiert
            .Activate
        
        End With
        
        Application.DisplayAlerts = False ' "Schon vorhanden" abschalten
        ActiveWorkbook.SaveAs Filename:=Pfad & Datei & Ext, FileFormat:=xlCSVMSDOS, Local:=True
        Application.DisplayAlerts = True
    End Sub
    
    LG UweD


    Anzeige
    AW: Bereiche als CSV exportieren
    25.05.2023 10:05:28
    hkoepp63
    Hallo Uwe,
    funktioniert super. Das einzige Problem was ich vergessen habe zu erwähnen, er darf erst bei C11 in meiner Tabelle anfangen.
    Ansonsten scannt das Script den kompletten Kopf mit den Projektdaten mit...

    Danke und Grüße
    Hinnerk


    AW: Bereiche als CSV exportieren
    25.05.2023 10:37:45
    UweD
    Hallo

    dann so
    Option Explicit
     
     Sub Exporten()
         Dim LR As Integer, i As Integer, Z1 As Integer
         Dim TB1 As Worksheet, TB2 As Worksheet
         Dim SRV As String, Mng As String, LTxt As String, STxt As String
         Dim Pfad As String, Datei As String, Ext As String
         
         Set TB1 = Sheets("export")
         Set TB2 = Sheets("csv_datei")
         Z1 = 11 'erste Datenzeile
         
         Pfad = "E:\Excel\Temp\" 'mit \ am Ende
         Ext = ".csv"
         
         'reset
         TB2.Range("I2:L2").ClearContents
         
         With TB1
             LR = .Cells(.Rows.Count, "C").End(xlUp).Row 'letzte Zeile der Spalte
             
             For i = Z1 To LR
                 If .Cells(i, 3) > "" Then
                     SRV = SRV & ";" & .Cells(i, 3)
                     Select Case .Cells(i, 7)
                         Case "", 0, 1
                             Mng = Mng & ";" & .Cells(i, 14)
                         Case Else
                             Mng = Mng & ";" & .Cells(i, 14) & "*" & .Cells(i, 7)
                     
                     End Select
                     
                     LTxt = LTxt & ";"
                     STxt = STxt & ";"
                     
                 End If
             Next
             
             
         End With
         With TB2
             Datei = .Cells(2, 1)
             
             .Cells(2, 9) = Mid(SRV, 2)    'erstes Semi wird weggelassen
             .Cells(2, 10) = Mid(Mng, 2)
         
             .Cells(2, 11) = LTxt
             .Cells(2, 12) = STxt
             
             'Blatt auswählen, nur das Aktive wird exportiert
             .Activate
         
         End With
         
         Application.DisplayAlerts = False ' "Schon vorhanden" abschalten
         ActiveWorkbook.SaveAs Filename:=Pfad & Datei & Ext, FileFormat:=xlCSVMSDOS, Local:=True
         Application.DisplayAlerts = True
     End Sub
    LG UweD


    Anzeige
    AW: Bereiche als CSV exportieren
    25.05.2023 12:10:39
    hkoepp63
    Hallo Uwe,
    funktioniert super, vielen herzlichen Dank schon einmal.
    Aber...
    Ich bekomme jetzt einen Laufzeitfehler "400".
    Das Script übernimmt die Änderungen, öffnet aber kein Fenster für die Erstellung der csv.
    Ich habe mal die folgenden Zeilen auskommentiert:
    'Application.DisplayAlerts = False ' "Schon vorhanden" abschalten
        'ActiveWorkbook.SaveAs Filename:=Pfad & Datei & Ext, FileFormat:=xlCSVMSDOS, Local:=True
        'Application.DisplayAlerts = True
    Danach ist der Laufzeitfehler weg. :-)

    Grüße
    Hinnerk


    Anzeige
    AW: Bereiche als CSV exportieren
    25.05.2023 12:15:44
    hkoepp63
    Außerdem besteht das Problem, daß er die komplette Datei kopiert und nicht nur das Tabellenblatt als CSV

    305 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige