Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Import nach Excel inkl. Module/Makros

Begonnen von Steppaaan, September 21, 2010, 11:06:25

⏪ vorheriges - nächstes ⏩

Steppaaan

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

database

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

Steppaaan

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

Steppaaan

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 ;-)

database

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