Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1796to1800
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

Prozedur aus externer Datei geht nicht

Prozedur aus externer Datei geht nicht
03.12.2020 10:46:58
Martin
Hallo Experten
Jetzt brauche ich mal wieder Eure Hilfe.
Ich habe in EXCEL 2016 mehrere (ca. 20) Arbeitsmappen mit bis zu 80 Tabellen (Rechnungen). In diesen Tabellen sollen Automatisierungen ablaufen (z.B. einfügen/aktualisieren eines QR-Codes (als Grafik) oder Ausgabe der Rechnung (Tabelle) als PDF und Versand per Email . Die entsprechenden Prozeduren habe ich mit Hilfe dieses Forums in vielen Stunden "zusammengebastelt". Sie laufen gut.
Nun sollen diese Prozeduren in einer zentralen Arbeitsmappe (als VBA-Sammlung) gespeichert werden, jedoch von den einzelnen Tabellen (Rechnungen) mittels Schaltflächen aufgerufen werden können. Und hier bin ich auch nach ausgiebiger Recherche in diesem Forum (und externen Quellen) nach 8 Stunden Probieren gescheitert.
Um zu vermeiden, dass die Ursache in den teils aufwändigen Prozeduren liegt, habe ich heute folgende Testumgebung erstellt.
Eine Arbeitsmappe [vba_test.xlsm] in welcher in den Tabellen Tabelle 1> und Tabelle 2> jeweils in Zelle A2 "Testwert 1" bzw. "Testwert 2" eingetragen sind.
In einer zweiten Arbeitsmappe (VBA-Sammlung) [db_vba.xlm] habe ich auf der Ebene Arbeitsmappe folgende Prozedur hinterlegt:
Sub test_proz()
Dim strAnzeigewert As String
strAnzeigewert = ActiveWorkbook.ActiveSheet.Range("A2")
MsgBox strAnzeigewert
End Sub
Wenn ich diese Prozedur aus der Arbeitsmappe [vba_test.xlsm] und einem der beiden Tabellen über das VBA-Projektfenster (heisst das so?) aufrufe, klappt das wunderbar.
Sobald ich aber diese Prozedur mittels einer Schaltfläche in der jeweiligen Tabelle aufrufen will, geht's nicht. Ich habe (neben vielen anderen) folgende Prozeduren ausprobiert:
Sub ausfuehren_13()
Application.Run db_vba.xlsm!test_proz
' Ergebnis: Laufzeitfehler 424  Objekt erforderlich
End Sub

Sub ausfuehren_23()
Application.Run "db_vba.xlsm!test_proz"
' Ergebnis: Laufzeitfehler 1004  Anwendungs oder objektorientierter Fehler
End Sub

Sub ausfuehren_33()
Application.Run "'db_vba.xlsm'!test_proz'"
' Ergebnis: Laufzeitfehler 1004  Anwendungs oder objektorientierter Fehler
End Sub

Sub ausfuehren_43()
Application.Run "D:\temp\Sandbox\de_vba.xlsm!test_proz'"
' Ergebnis: Laufzeitfehler 1004  Anwendungs oder objektorientierter Fehler
End Sub

Was mache ich falsch?
Die bessere/elegantere Lösung wäre wohl, die zentrale Prozedur als ein Add-In zu speichern und dieses in den jeweiligen Arbeitsmappen einbinden. Aber aus Lerngründen möchte ich erst mal den Aufruf der Prozedur aus einer externen Arbeitsmappe zustande kriegen.
PS: Macht es einen Unterschied, ob ich die auszuführende Prozedur in der "VBA-Sammlung" auf Ebene Arbeitsmappe oder Tabelle hinterlege?
Danke im Voraus an alle, welche sich dieser Problemstellung annehmen und mit Tipps geben.
Bleibt Gesund !
Martin

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prozedur aus externer Datei geht nicht
03.12.2020 10:59:10
Nepumuk
Hallo Martin,
um die Makros auszuführen muss die Mappe geöffnet sein.
Gruß
Nepumuk
AW: Prozedur aus externer Datei geht nicht
03.12.2020 11:13:10
Martin
Hallo Nepumuk
Danke für Deine Rückmeldung. Beide Dateien sind geöffnet
Sonst noch einen Hinweis?
Danke.
AW: Prozedur aus externer Datei geht nicht
03.12.2020 11:09:59
Luschi
Hallo Martin,

...habe ich heute folgende Testumgebung erstellt.
Warum stellst du diese Testumgebung hier als Dateien nicht bereit?
fragt sich Luschi
aus klein-Paris
AW: Prozedur aus externer Datei geht nicht
03.12.2020 12:39:27
AlterDresdner
Hallo Namensvetter,
steht test_proz in einem Modul, reicht
Run "db_vba.xlsm!test_proz"
steht es aber woanders, muss es heißen
Run "db_vba.xlsm!DieseArbeitsmappe.test_proz"
Die Modulvariante wäre also einfacher.
Gruß der Martin
AW: Prozedur aus externer Datei geht nicht
03.12.2020 15:42:51
Martin
Hallo Martin (der Wissende)
Chapeau - das war's. Es ist so einfach, wenn man es weiss und begreift. VIELEN DANK
Ich fasse zusammen (für alle die nach der Lösung suchen):
steht die Prozedur in der Arbeitsmappe, dann lautet der Code:
Run "db_vba.xlsm!DieseArbeitsmappe.test_proz"
steht die Prozedur in einer Tabelle, dann lautet der Code:

Run "db_vba.xlsm!Tabelle1.test_proz"
steht die Prozedur in einem Modul, dann lautet der Code:
Run "db_vba.xlsm!test_proz"

Somit ist die Frage ob die Prozedur besser in der Arbeitsmappe, einer Tabelle (oder einem Modul) stehen sollte eigentlich auch beantwortet.
Vielleicht kannst Du mir auch noch einen Tipp geben, wie die drei oben stehenden Prozeduren aussehen müssen, wenn die Prozedur "test_proz" als Add-In gespeichert wurde.
Cheers, und gesund bleiben
Martin (der Lernende)
Anzeige
AW: Prozedur aus externer Datei geht nicht
03.12.2020 19:32:57
AlterDresdner
Hallo Martin,
1. wenn das Makro im Addin im Modul steht und Addin aktiviert, reicht Run "Test_proz".
2. mit dem Wissenden ist es nicht so weit her, aber manchmal ist der Macrorekorder ganz nützlich...
Gruß der Martin

112 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige