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

nur bestimmte spalten in csv exportieren

nur bestimmte spalten in csv exportieren
26.02.2006 22:46:40
david
hallo,
ich möchte gerne ein excel-file als csv-exportieren, allerdings möchte ich nur bestimmte spalten exportieren und auch deren spalten-überschrift beeinflussen.
bin für jeden tipp dankbar.
grüße david

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nur bestimmte spalten in csv exportieren
26.02.2006 23:11:57
Ramses
Hallo
hier mal ein Beispiel für einen vorher selektierten Bereich
Sub export_selected_Range_and_save_as_CSV()
    '(C) by Ramses
    'Exportiert einen ausgewählten Bereich in ein zu definierendes Textfile
    Dim i As Integer, n As Integer, maxExpCol As Integer, Qe As Integer
    Dim startRow As Integer, StartCol As Integer, selRow As Integer, selCol As Integer
    Dim myC As Range
    Dim expFolder As String, expFileName As String
    Dim myDiv As String, tmpExpText As String, expText As String
    'Maximal zu exportierende Spalten
    'Dieser Parameter ist anzupassen, um unterschiedliche Bereiche
    'in ein einheitliches Exportformat zu bringen
    maxExpCol = 25
    'Default Pfad incl abschliessendem Backslash
    expFolder = "C:\Temp\"
    'Standard Name für TextExportFile
    expFileName = "Export.csv"
    '************************************************
    'Ab hier keine Änderungen mehr vornehmen
    'Trennzeichen für das CSV-File
    myDiv = ";"
    If Selection.Columns.count > maxExpCol Then
        MsgBox "Maximal zu exportierende Spaltenzahl überschritten"
        Exit Sub
    End If
    'Starbereich festlegen
    startRow = Selection.Range("A1").Row
    StartCol = Selection.Range("A1").Column
    'Scheifenparameter initialisieren
    selRow = Selection.Rows.count
    selCol = Selection.Columns.count
    For i = startRow To startRow + selRow
        tmpExpText = ""
        For n = StartCol To StartCol + selCol
            tmpExpText = tmpExpText & Cells(i, n).text & myDiv
        Next n
        'Exportfile auf erforderliche Länge bringen
        If Len(tmpExpText) < maxExpCol Then
            For n = Len(tmpExpText) To maxExpCol
                tmpExpText = tmpExpText & myDiv
            Next n
        End If
        expText = expText & tmpExpText & vbCrLf
    Next i
    'Exportfile und Speicherpfad kontrollieren
    expFileName = Application.GetSaveAsFilename(InitialFileName:=expFolder & expFileName, _
        fileFilter:="CSV Files (*.csv), *.csv)", Title:="Exportpfad definieren")
    If Dir(expFileName) <> "" Then
        Qe = MsgBox("Sollen die Daten an die existierende Datei angehängt werden," & vbCrLf & _
            "oder soll die Datei überschrieben werden ?" & vbCrLf & vbCrLf & _
            "JA = Anhängen" & vbCrLf & "NEIN = Datei überschreiben" & vbCrLf & "ABBRECHEN = Abbrechen", _
            vbYesNoCancel + vbCritical + vbDefaultButton1, "Exportverhalten definieren")
        If Qe = vbCancel Then Exit Sub
        If Qe = vbYes Then
            'Daten anhängen
            Open expFileName For Append As #1
            Print #1, expText
            Close #1
        Else
            'Daten überschreiben
            Open expFileName For Output As #1
            Print #1, expText
            Close #1
        End If
    Else
        'Daten erstmalig schreiben
        Open expFileName For Output As #1
        Print #1, expText
        Close #1
    End If
    MsgBox "Daten exportiert"
End Sub


Das mit den Spaltenüberschriften, kannst du bei deinem Level sicher anpassen.
Gruss Rainer
Anzeige
AW: nur bestimmte spalten in csv exportieren
27.02.2006 01:25:58
davod
dank dir rainer.
habs folgender maßen geändert:
startRow = 1
lastRow = Range("A65536").End(xlUp).Row
For i = startRow To lastRow
tmpExpText = ""
'hier die zu exportierenden Spalten eintragen
For Each Spaltenarray In Array("B", "C", "D")
StartCol = Range(Spaltenarray + "1").Column
tmpExpText = tmpExpText & Cells(i, StartCol).Text & myDiv
Next Spaltenarray
expText = expText & tmpExpText & vbCrLf
Next i
gute nacht!

325 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige