Thema Datum  Von Nutzer Rating
Antwort
Rot Excel: Tabelle aus Tabellenformat generieren und Werte ändern
07.02.2020 16:57:05 Tobias Wosten
NotSolved
09.02.2020 11:52:17 Gast81196
NotSolved

Ansicht des Beitrags:
Von:
Tobias Wosten
Datum:
07.02.2020 16:57:05
Views:
1450
Rating: Antwort:
  Ja
Thema:
Excel: Tabelle aus Tabellenformat generieren und Werte ändern

Hallo,

ich möchte mithilfe eines VBA Makro, eine Tabelle in einem bestimmten Format generieren. Also, ich habe eine Datei A, wo ich eine Spalte habe mit verschiedenen Zahlen, von der ich auch das Makro starte und eine Datei B, wo das Format der zu erstellenden CSV Datei ist. Die Datei B soll quasi einmal kopiert werden, damit in der kopierten Datei das Format ist und die eine Spalte aus Datei A soll in Datei B ausgewechselt werden.

Bislang habe ich den Code so geschrieben, dass ich die Datei B als Format auswählen kann und auch wieder speicher kann, aber das dazwischen fehlt mir noch. Ich weiß es ist schwer so etwas zu erklären, aber vielleicht kann mir da jemand helfen.

Sub Uebertragen()

Dim dateiname As String
Dim pfad As String

Dim ImportDatei As Variant
Dim wbImport As Workbook
Dim DatEingabe As String
    
    
dateiname = "Datenpunkte_" & Selection
dateiname = WorksheetFunction.Substitute(dateiname, ": ", "_")
dateiname = WorksheetFunction.Substitute(dateiname, " ", "_")
dateiname = WorksheetFunction.Substitute(dateiname, ".", "-")
dateiname = WorksheetFunction.Substitute(dateiname, Chr(10), "_")
    
MsgBox ("Bitte wählen Sie die Format-Datei (.csv) aus!")

ImportDatei = Application.GetOpenFilename(FileFilter:="Microsoft Excel-Dateien (*.csv), *.csv", Title:="Bitte wählen Sie eine Datei aus.")

If ImportDatei = False Then End 'Wenn keine Datei ausgewählt wird, alle Funktionen beenden

Dim ws As Worksheet, fd As FileDialog, rngTest As Range, rngExport As Range, fltr As FileDialogFilter
    'Worksheet auf dem die Daten stehen
    Set ws = Worksheets(3)
    'Zelle die auf Inhalt überprüft werden soll
    Set rngTest = ws.Range("E1")
    'Bereich der exportiert wird
    Set rngExport = ws.Range("E2:E138")
    If rngTest.Text <> "" Then
        Set fd = Application.FileDialog(msoFileDialogSaveAs)
        With fd
            .Title = "Zielort festlegen."
            'Filterindex für CSV-Dateien ermitteln
            For I = 1 To .Filters.Count
                If .Filters(I).Extensions = "*.csv" Then
                    .FilterIndex = I
                    Exit For
                End If
            Next
            MsgBox ("Bitte wählen Sie einen Speicherort aus!")
            'Wenn OK geklickt wurde starte Export
            .InitialFileName = dateiname
            If .Show = True Then
                ExportRangeAsCSV rngExport, ";", .SelectedItems(1)
            End If
        End With
    End If

End Sub


'Prozedur für den Export eines Ranges in eine CSV-Datei
Sub ExportRangeAsCSV(ByVal rng As Range, delim As String, filepath As String)
    Dim arr As Variant, line As String, csvContent As String, fso As Object, csvFile As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set csvFile = fso.OpenTextFile(filepath, 2, True)
    arr = rng.Value
    If IsArray(arr) Then
        For r = 1 To UBound(arr, 1)
            line = ""
            For c = 1 To UBound(arr, 2)
                If c < UBound(arr, 2) Then
                    line = line & """" & arr(r, c) & """" & delim
                Else
                    line = line & """" & arr(r, c) & """"
                End If
            Next
            csvContent = csvContent & line & vbNewLine
        Next
        csvFile.Write (csvContent)
        csvFile.Close
    Else
        MsgBox "Bereich besteht nur aus einer Zelle!", vbExclamation
    End If
    Set fso = Nothing
    Set csvFile = Nothing
End Sub



 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Excel: Tabelle aus Tabellenformat generieren und Werte ändern
07.02.2020 16:57:05 Tobias Wosten
NotSolved
09.02.2020 11:52:17 Gast81196
NotSolved