Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Aus CSV-Fileimport direkt Pivot-Table erstellen

Aus CSV-Fileimport direkt Pivot-Table erstellen
PM
Guten Tag zusammen !
habe da mal wieder eine schwierige Aufgabe gefasst, bei der Ihr mir hoffentlich (einmal mehr) weiterhelfen könnt ?
Und zwar gehts um folgendes Problem:
Ich habe eine CSV-Datei mit einigen Tausend Datensätzen (aufgeteilt in Spalten A bis AN)
Nun möchte ich anhand dieser CSV - Datei per Knopfdruck die Datei in ein anderes Excel laden und daraus automatisch eine Pivot-Tabelle erstellen.
Die Pivot Tabelle soll dann die Anzahl aller Datensätze aufgegliedert nach Bereich (= Spalte AA in der CSV) dargestellt werden.
Geht das irgendwie ?
Hab echt keine Ahnung von Lösungsansatz :-(
Danke schon mal herzlich für Eure Hilfe !!!
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Aus CSV-Fileimport direkt Pivot-Table erstellen
23.02.2010 15:04:17
PM
habs nun mal mit dem Makro-recorder ausprobiert.
aber der stürzt nun immer mit einem Laufzeitfehler 1004 ab:
Sub Makro4()
Cells.Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Test2!C1:C40").CreatePivotTable TableDestination:="", TableName:= _
"PivotTable5", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
With ActiveSheet.PivotTables("PivotTable5").PivotFields("PER_Service_Bereich")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("PivotTable5").AddDataField ActiveSheet.PivotTables( _
"PivotTable5").PivotFields("PER_Service_Bereich"), _
"Anzahl von PER_Service_Bereich", xlCount
Range("C4").Select
End Sub
was ist hier falsch ? kennt jemand von Euch Profis eine Lösung ?
Danke schon mal im voraus !!!!
Anzeige
AW: Aus CSV-Fileimport direkt Pivot-Table erstellen
23.02.2010 15:38:22
PM
Wenn ichs nun über den folgenden Code laufen lasse, so funzt es eigentlich genau so wie ich es möchte:
Sub Makro4()
On Error Resume Next
Cells.Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Test2!A1:AN65536").CreatePivotTable TableDestination:="", TableName:= _
"PivotTable5", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
With ActiveSheet.PivotTables("PivotTable5").PivotFields("PER_Service_Bereich")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("PivotTable5").AddDataField ActiveSheet.PivotTables( _
"PivotTable5").PivotFields("PER_Service_Bereich"), _
"Anzahl von PER_Service_Bereich", xlCount
Range("A3").Select
Makro5
End Sub
Sub Makro5()
On Error Resume Next
Range("A3").Select
With ActiveSheet.PivotTables("PivotTable5").PivotFields("PER_Service_Bereich")
.Orientation = xlRowField
.Position = 1
End With
End Sub

Nun sollte aber zum Makro - Start noch ein Dialogfenster geöffnet werden, aus welchem die CSV ausgewählt werden soll, anhand dessen dieses Makro dann die Pivot-Table erstellen soll.
(denn die Datei ist nicht jeden Monat am selben Ort abgespeichert)
wie müsste ich meinen "Murks-Code" entsprechend anpassen ?
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Aus CSV-Fileimport direkt Pivot-Table erstellen


Schritt-für-Schritt-Anleitung

  1. CSV-Datei auswählen: Erstelle ein Makro, das ein Dialogfenster öffnet, damit Du die CSV-Datei auswählen kannst.

    Sub CSVImport()
       Dim csvFile As Variant
       csvFile = Application.GetOpenFilename("CSV Files (*.csv), *.csv", , "Wähle eine CSV-Datei")
       If csvFile = False Then Exit Sub
       ' Hier folgt der Importcode
    End Sub
  2. PivotCache und PivotTable erstellen: Verwende die ausgewählte CSV-Datei, um einen Pivot-Cache und dann die Pivot-Table zu erstellen.

    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=csvFile).CreatePivotTable TableDestination:="", TableName:="PivotTable1"
  3. Daten anordnen: Füge die gewünschten Felder zur Pivot-Tabelle hinzu und wähle die Anordnung.

    With ActiveSheet.PivotTables("PivotTable1").PivotFields("PER_Service_Bereich")
       .Orientation = xlRowField
       .Position = 1
    End With
  4. Datenfeld hinzufügen: Füge das gewünschte Datenfeld hinzu, um die Anzahl der Datensätze anzuzeigen.

    ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables("PivotTable1").PivotFields("PER_Service_Bereich"), "Anzahl von PER_Service_Bereich", xlCount
  5. Makro ausführen: Führe das Makro aus und überprüfe, ob die Pivot-Tabelle korrekt erstellt wurde.


Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Dieser Fehler tritt häufig auf, wenn der SourceData-Bereich nicht korrekt angegeben ist. Achte darauf, dass die Spaltenbezüge in der CSV-Datei korrekt sind (z.B. "Test2!A1:AN65536").

  • Falsche Datenanzeige: Wenn die Pivot-Tabelle nicht die erwarteten Daten anzeigt, überprüfe, ob die Filter und Sortierungen korrekt sind.


Alternative Methoden

Falls Du keine Makros verwenden möchtest, kannst Du die CSV-Datei auch manuell in Excel importieren und dann eine Pivot-Tabelle erstellen:

  1. Gehe zu Daten > Aus Text/CSV.
  2. Wähle die CSV-Datei aus und klicke auf Importieren.
  3. Wähle die Daten aus und gehe zu Einfügen > PivotTable.
  4. Ordne die Felder wie gewünscht an.

Praktische Beispiele

Hier ist ein Beispiel für ein einfaches Makro, das eine Pivot-Tabelle aus einer CSV-Datei erstellt:

Sub ErstellePivotAusCSV()
    Dim csvFile As Variant
    csvFile = Application.GetOpenFilename("CSV Files (*.csv), *.csv", , "Wähle eine CSV-Datei")
    If csvFile = False Then Exit Sub

    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=csvFile).CreatePivotTable TableDestination:="", TableName:="PivotTable1"

    With ActiveSheet.PivotTables("PivotTable1").PivotFields("PER_Service_Bereich")
        .Orientation = xlRowField
        .Position = 1
    End With

    ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables("PivotTable1").PivotFields("PER_Service_Bereich"), "Anzahl von PER_Service_Bereich", xlCount
End Sub

Tipps für Profis

  • Verwende Named Ranges: Um Deine Makros flexibler zu gestalten, kannst Du Named Ranges verwenden, anstatt feste Zellbezüge zu verwenden.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in Deinen Makros, um Laufzeitfehler elegant zu behandeln. Beispiel:

    On Error GoTo Fehlerbehandlung
    ' Dein Code hier
    Exit Sub
    Fehlerbehandlung:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description

FAQ: Häufige Fragen

1. Wie kann ich eine Pivot-Tabelle aus einer externen CSV-Datei erstellen?
Du kannst ein Makro verwenden, um die CSV-Datei zu importieren und dann die Pivot-Tabelle direkt zu erstellen, wie im obigen Beispiel beschrieben.

2. Kann ich die Pivot-Tabelle automatisch aktualisieren?
Ja, Du kannst die Pivot-Tabelle automatisch aktualisieren, indem Du den Code ActiveSheet.PivotTables("PivotTable1").RefreshTable hinzufügst.

3. Welche Excel-Version benötige ich für diese Funktionen?
Die beschriebenen Methoden sind in Excel 2016 und späteren Versionen verfügbar.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige