Hallo zusammen
nach langem Suchen komme ich einfach nicht auf die Lösung und hoffe nun ihr könnt mir eben helfen.
Denke es handelt sich um eine ganz grundlegende Modul-import Frage - aber ich komm einfach nicht drauf
Ich möchte aus Access heraus mit einem Button eine Abfrage als Pivot Tabelle in Excel darstellen um diese dann in Excel weiter verarbeiten zu können.
Die Daten ins Excel zu bringen funktioniert bei mir mit folgendem Befehl:
DoCmd.OutputTo acOutputForm, "frm_pivottable", acFormatXLS, "C:\temp\test.xls", True
Ich hab dann auch die korrekten Daten im Arbeitsblatt.
Danach habe ich ein Makro erstellt das mir aus dem Datenblatt eine Pivot Tabelle macht:
Sub pivot_create()
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"frm_pivottable!R1C1:R208C13").CreatePivotTable TableDestination:="", _
TableName:="PivotTable1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
End Sub
Das Makro wird nun natürlich in der Excel Mappe gespeichert. Allerdings soll nach Verwendung die Arbeitsmappe wieder gelöscht werden.
Demnach dachte ich, ich exportiere das Excel-Pivot-Makro in meine Access Datenbank und führe das dann als Modul aus.
Allerdings stehe ich im Moment etwas auf dem Schlauch wie ich das realisieren kann.
Weitere Punkte wären dann ebenfalls über Makros/Module die Pivot Tabelle in entsprechende Pivot-Charts darzustellen. (mit versch. filtern)
Allerdings denke ich das schaff ich dann selbst wenn ich verstanden habe wie ich die Makros korrekt in Access verwende.
Gruß - Stefan
Hallo,
nur mit kopieren eines Excelmakros nach Access wirds nicht laufen - wie du ja schon leidvoll erkannt hast.
Du musst von Access aus Excel erst einmal richtig ansprechen...
Sollte in der Form wie unten dargestellt gehen:
Dim appXL as Excel.Application
Dim wbXL as Workbook
Dim wsXL as Worksheet
Dim strDatei as string, strPath as string
strPath = "C:\DeinVerzeichnis\"
strDatei = strPath & "DeineDatei.xls"
Set appXL = CreateObject("Microsoft Excel") 'Excel-Objekt erstellen
Set wbXL = appXL.OpenWorkbook(strDatei) ' Datei öffnen
'Eventuell ein bestimmtes Tabellenblatt ansprechen
'Set wsXL = wbXL.Worksheets("DeineExcelTabelle")
wbXL.Activate
'....ab hier dann der Code aus deinem Makro
Versuch das mal - ich hab's nicht getestet!
Greets
Peter
Hallo Peter,
Danke erstmal für die Hilfe.
Der Code funktioniert soweit gut.
DoCmd.OutputTo acOutputForm, "frm_pivottable", acFormatXLS, "C:\temp\test.xls", False
Dim appXL As Object
Dim wbXL As Object
Dim wsXL As Object
Dim strDatei As String, strPath As String
strPath = "C:\temp\"
strDatei = strPath & "test.xls"
Set appXL = CreateObject("Excel.Application")
Set wbXL = appXL.Workbooks.Open(strDatei) ' Datei öffnen
Set wsXL = wbXL.Worksheets("frm_pivottable")
appXL.Visible = True 'sichtbar machen
wbXL.Activate 'aktivieren
wsXL.Name = "frm_pivottable" 'Blatt benamen
Bis hierhin klappt alles. Aber wenn er dann auf mein Makro greift startet der Debugger, setzt eine Markierung in der dritten Zeile und sagt "Objekt erforderlich"
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"frm_pivottable!R1C1:R208C13").CreatePivotTable TableDestination:="", _
TableName:="frm_pivottable", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
Bin ich nur blind oder hab ich vergessen was zu deklarieren?
Irgendwelche Ideen?
Gruß - Stefan
Oh mein Gott....
Ich D*** habe keinen Verweis fürs Excel angegeben...
Jetzt klappts auch.
Werd jetzt mal versuchen den Excel Verweis als VBA Befehl ganz am Anfang des Buttons zu setzen und mach dann mit der Diagramm-formatierung weiter.
Die nächsten Fragen kommen bestimmt bald ;-)
Hallo,
schön dass ich dir helfen konnte! ;D ;D ;D
Zitatund mach dann mit der Diagramm-formatierung
Dafür aber dann einen neuen Thread aufmachen und den aktuellen Beitrag auf 'gelöst' setzen bitte! ::)
LG
Peter