Met een Accessmacro een Excelbestand openen en een Excelmacro draaien

Status
Niet open voor verdere reacties.

halmar76

Gebruiker
Lid geworden
28 nov 2003
Berichten
60
Hallo,

Ik wil met een Accessmacro het volgende doen:

- een query uitvoeren naar een bepaald excelbestand
- dit excel bestand openen
- een ander excelbestand openen en een in dit bestand opgeslagen macro laten draaien

Is dit mogelijk en zo ja weet iemand hoe. Ik ben niet goed bekend met VBA :confused:, dus als jullie codes hebben graag.

Alvast heel erg bedankt!

Halmar
 
Nee,

vanwege beveiliging issues kan je geen excel macro draaien vanuit een ander programma.
In principe zou je dan namelijk zonder licentie invoegtoerpassingen kunnen gebruiken e.d.

Wat wel kan is een kopie van de macro in access zetten en deze herschrijven zodat hij vanuit Access op het Excel bestand wordt uitgevoerd.

excel open doe je overigens zo:
Code:
Dim M_Excel as Excel.Application
on error resume next
Set M_Excel = getobject("Excel.Application")
if Err then
    Set M_Excel = CreateObject("Excel.Application")
end if
je moet dan wel een referentie zetten naar het excel object in je editor.

Als je klaar bent met testen kan je de referentie wijzigen en alle referentie's naar Excel oimzetten in objecten zodat er geen problemen ontsaan met verschillende versie's van Excel. Dit stukje wordt dan:
Code:
Dim M_Excel as Object
on error resume next
Set M_Excel = getobject("Excel.Application")
if Err then
    Set M_Excel = CreateObject("Excel.Application")
end if

Let op: ook constanten zoals xlshiftup moet je dan wijzigen in het getal waarvoor deze staat.
 
Phoe hé. Ik ben bang dat ik er niet uit kom. Ik hoop dat je me kan helpen als het niet te veel moeite is....

De VBA-code van de Accessmacro is:

'------------------------------------------------------------
' Bezoekrapport_uitvoer
'
'------------------------------------------------------------
Function Bezoekrapport_uitvoer()
On Error GoTo Bezoekrapport_uitvoer_Err

DoCmd.SetWarnings False
DoCmd.OutputTo acQuery, "Sub_bezoekrapprt_uitvoer", "MicrosoftExcel(*.xls)", "\\003_C00300\SHARED$\GL WHN Sales\Sjablomen\Bezoekrapportstart.xlt", True, ""


Bezoekrapport_uitvoer_Exit:
Exit Function

Bezoekrapport_uitvoer_Err:
MsgBox Error$
Resume Bezoekrapport_uitvoer_Exit

End Function


Vervolgens moet er een sjabloonbestand (\\003_C00300\SHARED$\GL WHN Sales\Sjablomen\Bezoekrapportviabrian.xlt) geopend worden waarin de volgende excelmacro staat.
De VBA-code van de Excelmacro is:

Application.DisplayAlerts = False
Windows("Bezoekrapportstart1").Activate
Rows("1:2").Select
Selection.Copy
Windows("Bezoekrapportviabrian1").Activate
Sheets("Blad1").Select
Rows("1:2").Select
ActiveSheet.Paste
Range("A1").Select
Sheets("Algemene informatie").Select
Columns("A:D").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("B3:D3").Select
Sheets("Blad1").Select
Application.CutCopyMode = False
ActiveWindow.SelectedSheets.Delete
Sheets("Algemene informatie").Select
Windows("Bezoekrapportstart1").Activate
ActiveWindow.Close
End Sub


En deze twee moeten dus samengevoegd worden.

Alvast bedankt als je me verder kan helpen.
 
Probeer zelf eens wat en zoek eens wat rond naar soortgelijke code.

Code on request vind ik wat ver gaan namelijk.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan