ich habe eine Datei in der in jeder Tabelle das gleiche private sub makro enthalten ist.
Wie kann ich aus dem Modul heraus, das Makro für alle Tabellen starten?
VG
Walter
Sub Makro_starter
Mein
Sub 'Der Name deines Private Sub's
End Sub
das Du dann von anderen Modulen aus aufrufen kannst.
Wobei das a) ungetested ist und b) vermutlich denselben Effekt haette wie das originale auf Public zu setzen...
Schoene Gruesse
Stefan
Sub Aufruf()
Dim mySheet As Worksheet
Dim myString As String
For Each mySheet In ThisWorkbook.Sheets 'Schleife durch alle Arbeitsblaetter
myString = mySheet.Name & ".MeinMakro" 'Generierung eines Strings der Form Arbeitsblatt.Makroname
Run myString 'Aufruf Deines Makros
Next
End Sub
Um ein Private Sub in mehreren Tabellen gleichzeitig zu starten, kannst du den folgenden VBA-Code verwenden. Dieser Code durchläuft alle Arbeitsblätter in deiner Excel-Datei und ruft das gewünschte Makro auf:
Sub Aufruf()
Dim mySheet As Worksheet
Dim myString As String
For Each mySheet In ThisWorkbook.Sheets ' Schleife durch alle Arbeitsblätter
myString = mySheet.Name & ".MeinMakro" ' Generierung eines Strings der Form Arbeitsblatt.Makroname
Run myString ' Aufruf Deines Makros
Next
End Sub
Ersetze MeinMakro
mit dem Namen deines Private Sub, das in allen Arbeitsblättern vorhanden sein muss. Dieses Vorgehen ist besonders nützlich, wenn du das gleiche Private Sub in mehreren Tabellen hast und es nicht manuell für jede Tabelle aufrufen möchtest.
Fehler: Das Private Sub wird nicht gefunden.
Lösung: Stelle sicher, dass das Private Sub in allen Arbeitsblättern den gleichen Namen hat.
Fehler: Es wird eine Fehlermeldung angezeigt, dass das Sub nicht aufgerufen werden kann.
Lösung: Überprüfe, ob das Sub als Public deklariert ist, wenn du von außerhalb des Arbeitsblatts darauf zugreifen möchtest.
Falls du keine Schleife verwenden möchtest, kannst du auch überlegen, das Private Sub in ein Public Sub umzuwandeln. So kannst du es einfacher von anderen Modulen aus aufrufen:
Public Sub MeinMakro()
' Dein Code hier
End Sub
Denke daran, dass dies die Sichtbarkeit des Makros ändert und es von anderen Modulen aufgerufen werden kann. Eine weitere Alternative wäre, separate Sub-Prozeduren in jedem Modul zu erstellen, die das Private Sub aufrufen.
Hier sind einige praktische Anwendungen für das oben genannte Codebeispiel:
1. Kann ich ein Private Sub von einem anderen Modul aus aufrufen?
Nein, ein Private Sub kann nur innerhalb des Moduls aufgerufen werden, in dem es definiert ist. Du kannst jedoch den Sub als Public deklarieren, um ihn von anderen Modulen aus zugänglich zu machen.
2. Was ist der Unterschied zwischen einem Public Sub und einem Private Sub?
Ein Public Sub kann von überall in der Excel-Arbeitsmappe aufgerufen werden, während ein Private Sub nur innerhalb des Moduls, in dem es definiert ist, aufgerufen werden kann.
3. Wie kann ich sicherstellen, dass mein Private Sub in allen Arbeitsblättern vorhanden ist?
Du kannst den Code von einem Arbeitsblatt in die anderen kopieren oder ein gemeinsames Modul verwenden, um sicherzustellen, dass die gleiche Funktionalität überall verfügbar ist.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen