none
OLE-Excel-Objekt eingebunden in Formular, wie dessen Makro aufrufen?

    Frage

  • Liebe Community,

    ihr merkt sicherlich, dass ich in den letzten Tage relativ viel frage und aktiv bin. Momentan sitze ich aber an einer wirklich harten Nuss.

    Nun habe ich folgende Situation (Bild als Link beigefügt, zum besseren Verständnis):

    - Ich habe in Access ein Formular mit einem Excel-OLE Objekt drinnen und einen Button

    - In dem eingefügten Excel-Objekt ist ein Makro hinterlegt, dass ich gerne über den Button im Access-Formular triggern möchte.

    Eigentlich dürfte diese Aufgabe nicht sehr schwer sein, da ich ja an die Makros des Excel-Objektes problemlos dran komme.

    Habe nur keine Ahnung, wie ich es anstellen soll. In den Properties des OLE-Containers habe ich keine Methode gefunden, die das macht.

    Hier der Link: http://dl.dropbox.com/u/2719690/Capture2.PNG

     

    Habt vielen Dank!

    VG

    Mal wieder Patrick :-)

    Dienstag, 16. August 2011 17:41

Antworten

  • Im Grunde könnte es so funktionieren:

    Option Compare Database
    Option Explicit
    
    Private Sub cmdRunExcelMacro_Click()
       Dim o As Excel.Workbook
       Set o = ctlOelUnbound.Object
      o.Application.Run "Macro1"
      Set o = Nothing
    
    End Sub

    Allerdings scheints da ein paar Fallstricke zu geben. Daher: Ohne Gewähr.


    Microsoft MVP Office Access
    https://mvp.support.microsoft.com/profile/Stefan.Hoffmann
    Mittwoch, 17. August 2011 08:01
    Moderator
  • Hallo Patrick,
    ganz genau. Ich habe die Lösung von Stefan ausprobiert und sie hat richtig funktioniert. Ich musste bloß den ganzen ‚Pfad‘ des Makros angeben:
     
    o.Application.Run o.Name + "!ThisWorkbook.Macro1"
    
    

    Grüße,
    Bogdan
    Mittwoch, 17. August 2011 12:25
    Moderator

Alle Antworten

  • Im Grunde könnte es so funktionieren:

    Option Compare Database
    Option Explicit
    
    Private Sub cmdRunExcelMacro_Click()
       Dim o As Excel.Workbook
       Set o = ctlOelUnbound.Object
      o.Application.Run "Macro1"
      Set o = Nothing
    
    End Sub

    Allerdings scheints da ein paar Fallstricke zu geben. Daher: Ohne Gewähr.


    Microsoft MVP Office Access
    https://mvp.support.microsoft.com/profile/Stefan.Hoffmann
    Mittwoch, 17. August 2011 08:01
    Moderator
  • Hallo Patrick,
    ganz genau. Ich habe die Lösung von Stefan ausprobiert und sie hat richtig funktioniert. Ich musste bloß den ganzen ‚Pfad‘ des Makros angeben:
     
    o.Application.Run o.Name + "!ThisWorkbook.Macro1"
    
    

    Grüße,
    Bogdan
    Mittwoch, 17. August 2011 12:25
    Moderator
  • Hallo ihr beiden,

    vielen lieben Dank für die Code-Snippets.

    War genau das, was ich gesucht habe!

    Klasse Community, wirklich. :-)

     

    LG

    Patrick

    Mittwoch, 17. August 2011 17:46