Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Sub aus Add-In ausführen

Forumthread: Sub aus Add-In ausführen

Sub aus Add-In ausführen
23.08.2006 11:33:48
Karina
Hallo Forum,
könnt ihr mir bitte mal weiterhelfen?
Ich habe ein VBA-Proggi als Add-In (Formeln.xla) erstellt und in Excel per Add-In-Manager geladen. Das Add-In funktioniert auch korrekt und beinhaltet unter anderem eine Sub namens "Berechnung" (die auch funktioniert, sofern ich sie manuell starte).
Nun zum Problem:
Ich öffne eine neue Arbeitsmappe "Karina.xls" und möchte erreichen, dass über das Ereignis Worksheet_Change diese Sub "Berechnung" aus dem Add-In ausgeführt wird.
Wie erreiche ich das?
So geht's leider nicht:
In der Arbeitsmappe "Karina.xls":

Private Sub Worksheet_Change(ByVal Target As Range)
Berechnung
End Sub

funktioniert nicht, da die Sub aus dem Add-In nicht gefunden wird.
Kann ich hier explizit angeben, dass sich die Sub in dem Add-In "Formeln.xla" befindet und von dort gestartet wird, aber die Daten der aktuellen Tabelle in Karina.xls verwendet?
Wenn ja: Wie geht's?
Gruss Karina
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Sub aus Add-In ausführen
23.08.2006 11:56:04
Frederik
Hallo!
so geht`s:
...
run "berechnung"
...
Gruß
Frederik
AW: Sub aus Add-In ausführen
23.08.2006 12:25:13
Karina
Hallo Frederik,
vielen Dank. Manchmal ist es sooo einfach, lach.
Eine Frage noch.
Über das Ereignis Workbook_Change wird in der Mappe Karina.xls noch eine Variable (Public) gefüllt.
Die Sub "Berechnung" aus dem Add-In hat offensichtlich keinen Zugriff auf den Inhalt dieser Variablen. Wie kann ich den Variablen-Inhalt an die Sub "Berechnen" übergeben (am besten gleich an alles Subs des Add-In "Formeln.xla")?
Gruss Karina
Anzeige
AW: Sub aus Add-In ausführen
23.08.2006 12:41:59
Frederik
Hallo Karina!
Müsste eigentlich gehen. Wie fragst du denn den Inhalt der Variable ab?
Gruß
Frederik
AW: Sub aus Add-In ausführen
23.08.2006 12:51:53
Karina
In der Karina.xls:

Private Sub Worksheet_Change(ByVal Target As Range)
Wert2 = "Wert_A"
run "Berechnung"
End Sub

Die Variable Wert1 wurde vorher mit
Option Explicit
Public Wert2 as string
deklariert.
In der Add-In Sub "Berechnung" hab ich jetzt einfach mal eine
MsgBox Wert2
eingegeben.
Ausgegeben wird eine leere Messagebox.
Anzeige
AW: Sub aus Add-In ausführen
23.08.2006 12:53:21
Uduuh
Hallo,
hallo,
da es sich bei dem Addin um ein anders Projekt handelt, nur als Parameter.
Application.run ("Berechnung",Variable)

Sub Berechnung(optional Var)
'Code
End Sub

Gruß aus’m Pott
Udo

Anzeige
AW: Sub aus Add-In ausführen
23.08.2006 13:09:18
Karina
Hallo Udo,
bei dieser Variante meckert Excel wieder, dass er das Makro "Berechnung" nicht finden kann.
Die Parameterübergabe scheint auf das aktuelle Projekt begrenzt zu sein.
Noch eine andere Idee?
Gruss Karina
AW: Sub aus Add-In ausführen
23.08.2006 13:13:30
u_
Hallo,
dann stell den Addin-Namen noch voran und schau mal in die Hilfe! Muss man denn alles vorkauen!
application.run("meinAddin.xla!Berechnung",Wert)
Gruß
Lesen gefährdet die Dummheit
Anzeige
AW: Sub aus Add-In ausführen
23.08.2006 13:32:42
Karina
Hi Udo,
tut mir ja leid, dass du mir was "vorkauen" musst. Aber das habe ich bereits erfolglos probiert.
Excel kompl. schliessen und neu starten - ja dann ging es.
Aber es löst nicht mein Problem:
Die Variable wird anscheinend auch nicht als Parameter übergeben und nach dem die Sub "Berechnung" abgearbeitet ist, verzweigt Excel wieder in die Karina.xls und bricht mit der Fehlermeldung "Laufzeitfehler 424 - Objekt erforderlich" ab. Der Debugger verweist auf just deine Codezeile: application.run("meinAddin.xla!Berechnung",Wert)
Karina
Ich dachte das Forum ist dazu da, Fragen zu stellen. Auch wenn man noch kein Profi ist...
Anzeige
AW: Sub aus Add-In ausführen
23.08.2006 22:06:56
Gerd
Hallo Karina,
"... ein VBA-Proggi als Add-In (Formeln.xla) erstellt..."
Vielleicht musst Du nur noch den Add-In-Namen bei Dir im Code anpassen ?
Gruß
Gerd
;
Anzeige

Infobox / Tutorial

Sub aus Add-In ausführen


Schritt-für-Schritt-Anleitung

Um eine Excel Sub aus einem Add-In auszuführen, befolge diese Schritte:

  1. VBA-Projekt vorbereiten:

    • Stelle sicher, dass dein Add-In (z.B. Formeln.xla) korrekt installiert ist. Dies kannst du im Add-In-Manager von Excel überprüfen.
  2. Sub im Add-In aufrufen:

    • In der Arbeitsmappe, in der du die Sub ausführen möchtest, füge den folgenden Code in das richtige Ereignis (z.B. Worksheet_Change) ein:
      Private Sub Worksheet_Change(ByVal Target As Range)
      Application.Run "Formeln.Berechnung"
      End Sub
    • Dies ruft die Sub Berechnung aus dem Add-In Formeln.xla auf.
  3. Parameterübergabe:

    • Wenn du einen Parameter an die Sub übergeben möchtest, kannst du dies so tun:
      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim Wert2 As String
      Wert2 = "Wert_A"
      Application.Run "Formeln.Berechnung", Wert2
      End Sub

Häufige Fehler und Lösungen

  • Laufzeitfehler 424 - Objekt erforderlich:

    • Dieser Fehler tritt auf, wenn die referenzierte Sub nicht gefunden wird. Stelle sicher, dass der Name des Add-Ins und der Sub korrekt angegeben sind:
      Application.Run "Formeln.Berechnung"
  • Leere Messagebox:

    • Wenn du in der Sub Berechnung eine Variable abfragst und eine leere Messagebox bekommst, prüfe, ob die Variable im richtigen Gültigkeitsbereich deklariert ist. Die Deklaration sollte Public in der Arbeitsmappe sein.

Alternative Methoden

  • Direktes Aufrufen der Sub:

    • Du kannst die Sub auch ohne Application.Run direkt aufrufen, wenn sie sich im gleichen VBA-Projekt befindet:
      Private Sub Worksheet_Change(ByVal Target As Range)
      Berechnung
      End Sub
  • Verwendung von Call:

    • Eine weitere Möglichkeit ist die Verwendung des Call-Befehls:
      Call Application.Run("Formeln.Berechnung")

Praktische Beispiele

Beispiel 1: Sub ohne Parameter aufrufen:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.Run "Formeln.Berechnung"
End Sub

Beispiel 2: Sub mit Parameter übergeben:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Wert2 As String
    Wert2 = "Wert_A"
    Application.Run "Formeln.Berechnung", Wert2
End Sub

Tipps für Profis

  • Debugging: Verwende Debug.Print innerhalb deiner Subs, um den Wert von Variablen zu überprüfen, bevor du sie übergibst.
  • Namen konsistent halten: Achte darauf, dass die Namen der Subs und Add-Ins stets konsistent sind, um Verwirrung zu vermeiden.
  • Verwendung von Option Explicit: Füge Option Explicit am Anfang deiner Module hinzu, um sicherzustellen, dass alle Variablen deklariert werden.

FAQ: Häufige Fragen

1. Wie kann ich eine Sub aus einem Add-In ohne Parameter aufrufen? Du kannst einfach Application.Run "AddInName.SubName" verwenden, um die Sub aus dem Add-In auszuführen.

2. Was mache ich, wenn die Sub nicht gefunden werden kann? Überprüfe den Namen des Add-Ins und der Sub auf Tippfehler. Stelle sicher, dass das Add-In aktiv geladen ist.

3. Wie übergebe ich mehrere Parameter an eine Sub aus einem Add-In? Verwende Application.Run "AddInName.SubName", Param1, Param2, wobei Param1 und Param2 die Parameter sind, die du übergeben möchtest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige