Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1008to1012
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro aus Add-In

Makro aus Add-In
09.09.2008 18:35:00
Mario
Hallo liebe Herber-Gemeinde!
Ich hab eine *.xla Datei erstellt mit einem Makro, weil ich dieses Makro in einigen hundert Dateien verwenden möchte. Und so bietet sich mir die Option Änderungen im Makro an einer Stelle vorzunehmen und alle haben die aktuelle Version.
Dabei stellt sich mir nun ein Problem. Wie rufe ich dieses Makro auf? Ich habe es über Private Sub Workbook_Open() probiert und das funktioniert auch. Das Makro startet und gibt dann einen Fehler in dieser Zeile :
Zeilenanzahl = ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row
Ok dachte ich, das Problem besteht vermutlich darin weil das Makro ja aus dem Add-In kommt. Dann habe ich folgende Zeilen davor geschrieben um die richtige Datei zu aktivieren.
Application.Workbooks("Test.xls").Activate
Application.Worksheets("Test").Activate
Und dann bekomme ich den Laufzeitfehler '9' Index ausserhalb des gültigen Bereichs.
Wie kann ich Excel dazu bringen korrekt weiterzuarbeiten obwohl das Makro im Add-In ist?
Gruß und schonmal vielen Dank

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro aus Add-In
09.09.2008 19:33:00
Rudi
Hallo,
Workbook_open in welcher Datei?
Im Addin? Das hat kein Activesheet.
Gruß
Rudi
AW: Makro aus Add-In
09.09.2008 19:42:00
Mario
Hallo,
ja, im Add-In ist das Workbook_Opne(). Dashab ich mir auch gedacht das es kein ActiveSheet hat. Deswegen habe ich dann ja
Application.Workbooks("Test.xls").Activate
Application.Worksheets("Test").Activate
ergänzt. Aber das brachte auch keine wirkliche Besserung
AW: Makro aus Add-In
09.09.2008 19:42:00
Tino
Hallo,
wenn ich ein Add-In in mehreren Tabellen benötige, mache ich dies immer so.
In Diese Arbeitsmappe (in der *.xla Datei)
Dim oKlasseExcel As MeinKlassenModul
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("cell").Reset
Set oKlasseExcel = Nothing
End Sub

Private Sub Workbook_Open()
    Set oKlasseExcel = New MeinKlassenModul
    Set oKlasseExcel.ExcelWatch = Application
End Sub


In ein Klassenmodul (in der *.xla Datei, hier hat diese den Namen MeinKlassenModul)
Klassenmodul MeinKlassenModul

Public WithEvents ExcelWatch As Application 
 
Private Sub ExcelWatch_WorkbookActivate(ByVal Wb As Workbook) 
Dim NeuerButton As CommandBarControl 
 
Set NeuerButton = Application.CommandBars("cell").Controls.Add 
 
With NeuerButton 
 
    .Caption = "Butten Name" 'Name der Sichtbar ist 
 
    .OnAction = "Mein_Makro" 'Name des Makros 
 
End With 
End Sub 
 
Private Sub ExcelWatch_WorkbookDeactivate(ByVal Wb As Workbook) 
On Error Resume Next 
Application.CommandBars("cell").Reset 'Menü zurücksetzen 
End Sub 
 


Jetzt kannst Du über die rechte Maustaste, über den neuen Butten Dein Makro aufrufen.
Dies geht auch mit einem Dropdownmenü, sollten mehrere Makros aus diesem Add-In gestartet werden.
Gruß Tino

Anzeige
AW: Makro aus Add-In
09.09.2008 19:45:14
Mario
Hallo Tino,
werde ich morgen mal ausprobieren, danke.
AW: Makro aus Add-In
10.09.2008 10:40:00
Mario
Soweit Klasse Sache mit dem Menüeintrag. Nur Wo mus das Makro rein? In die Arbeitsmappe oder in das Modul? Hab das Makro in der Arbeitsmappe und hab folgendes eingetragen:
.OnAction = "DatenEinlesen()" 'Name des Makros
Nur bekomme ich dann die Meldung das er das Makro nicht findet
AW: Makro aus Add-In
10.09.2008 10:48:01
Tino
Hallo,
versuche es mal ohne die ().
Wo diese hin müssen habe ich doch geschrieben.
Bin auf der arbeit, schreibe vom Pocket.
Gruß Tino
AW: Makro aus Add-In
10.09.2008 10:57:09
Mario
Hi Tino,
wo deine Makros hinmüssen ja. Aber wo muss das Makro hin was ich ausführen möchte? Ich habe es wie gesagt in der Arbeitsmappe. Wenn ich nun
.OnAction = "DatenEinlesen" 'Name des Makros
eintrage, dann bekomme ich den Fehler:
Microsoft Excel kann das Makro 'test.xla!DatenEinlesen' nicht finden.
Anzeige
AW: Makro aus Add-In
10.09.2008 11:08:27
Tino
Hallo,
in ein Modul
Gruß Tino
AW: Makro aus Add-In
10.09.2008 11:34:00
Mario
Super, das hat klasse funktioniert. Ich danke Dir

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige