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

Makro aus einem anderem Tabellenblatt

Forumthread: Makro aus einem anderem Tabellenblatt

Makro aus einem anderem Tabellenblatt
07.03.2016 23:56:12
Falo
Hallo ,
ich möchte ein Makro aus einem anderem Tabellenblatt(Mitglieder) der gleichen Datei
aus dem Tabellenblatt (Geburtstag) aufrufen.
könnt Ihr mir bitte einen Tipp geben.
LG
Olaf

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Das wird nur bei Makros in DokKlassenModulen ...
08.03.2016 01:18:31
Luc:-?
…und bei Private-Prozeduren schwierig, Olaf,
sonst nicht. Wenn die Prozedur im Dok-KlassenModul des anderen Blattes nicht Private ist, muss man nur den CodeName dieses Blattes voranstellen, zB so Tabelle2.ProzedurName. Allerdings ist es immer besser, diese CodeNames in solchen Fällen selbst eindeutig festzulegen, damit auch mal die Prozeduren einer anderen Mappe in ein VBA-Projekt eingebunden wdn können.
Feedback nicht unerwünscht! Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Das wird nur bei Makros in DokKlassenModulen ...
08.03.2016 01:36:37
Falo
Hallo Luc,
Danke!, hat geklappt ich hatte das Tabellenblatt umbenannt, aber man muß den internen Name (Tabele xy) nehmen.
LG
Olaf

Na, dann... ;-) owT
08.03.2016 01:42:47
Luc:-?
:-?

AW: Das wird nur bei Makros in DokKlassenModulen ...
08.03.2016 08:20:59
Daniel
Hi
nein, man kann auch den Namen nehmen, der auf dem Tabellenblattreiter steht.
Call Worksheets("Geburtstag").Makroname

allerdings wird man dann beim Schreiben des Codes nicht mehr von der IntelliSense unterstützt (dh man muss den Makronamen selber richtig hin schreiben und kann ihn nicht aus der Vorschlagsliste auswählen) und man hat den Nachteil, dass bei nachträglichen Umbenennungen des Tabellenblatts durch den Anwender der Code nicht mehr funktioniert und angepasst werden muss.
Gruß Daniel

Anzeige
AW: Das wird nur bei Makros in DokKlassenModulen ...
08.03.2016 10:21:07
snb
Oder
Sub M_ruf()
CallByName Sheet1, "M_snb", 1
CallByName Sheets("Sheet1"), "M_snb", 1
CallByName Sheets(1), "M_snb", 1
End Sub

Anzeige
Anzeige

Infobox / Tutorial

Makro aus einem anderen Tabellenblatt aufrufen


Schritt-für-Schritt-Anleitung

Um ein Makro aus einem anderen Tabellenblatt in Excel aufzurufen, kannst Du folgende Schritte befolgen:

  1. Öffne das Excel-Dokument mit den gewünschten Tabellenblättern.
  2. Identifiziere das Makro, das Du aufrufen möchtest. Achte darauf, ob es in einem Dok-Klassenmodul oder in einem normalen Modul gespeichert ist.
  3. Wenn das Makro in einem Dok-Klassenmodul ist und nicht Private ist, kannst Du es folgendermaßen aufrufen:
    Tabelle2.ProzedurName
  4. Ist das Makro in einem anderen Tabellenblatt, kannst Du den CodeName des Blattes verwenden. Alternativ kannst Du auch den sichtbaren Namen des Blattes verwenden, jedoch ist dies nicht empfehlenswert, da es bei Umbenennungen Probleme geben kann.
    Call Worksheets("Geburtstag").Makroname
  5. Stelle sicher, dass Du beim Aufruf des Makros den richtigen Namen verwendest, um Fehler zu vermeiden.

Häufige Fehler und Lösungen

  • Makro wird nicht gefunden: Überprüfe, ob der CodeName des Tabellenblatts korrekt ist. Der CodeName ist nicht der sichtbare Name des Blattes, sondern der interne Name, den Du im VBA-Editor siehst.

  • IntelliSense wird nicht unterstützt: Wenn Du den sichtbaren Namen des Blattes verwendest, bietet Excel keine Vorschläge mehr. Verwende den CodeName, um die IntelliSense-Funktionalität zu nutzen.

  • Makro funktioniert nach Umbenennung nicht mehr: Wenn Du den sichtbaren Namen verwendest, wird das Makro nach einer Umbenennung des Blattes nicht mehr gefunden. Verwende besser den CodeName.


Alternative Methoden

Es gibt verschiedene Möglichkeiten, ein Makro aus einem anderen Tabellenblatt aufzurufen:

  1. CallByName:

    CallByName Sheet1, "M_snb", 1
    CallByName Sheets("Sheet1"), "M_snb", 1
    CallByName Sheets(1), "M_snb", 1

    Diese Methode ermöglicht den Aufruf eines Makros, ohne den CodeName direkt anzugeben.

  2. Direkter Aufruf durch die Prozedur: Stelle sicher, dass Du den richtigen Namen und die richtige Syntax verwendest, um das Makro direkt aufzurufen.


Praktische Beispiele

Hier sind einige Beispiele, wie Du ein Makro aus einem anderen Tabellenblatt aufrufen kannst:

  1. Aufruf mit CodeName:

    Tabelle2.ProzedurName
  2. Aufruf mit sichtbarem Namen:

    Call Worksheets("Geburtstag").Makroname
  3. Aufruf mit CallByName:

    Sub M_ruf()
       CallByName Sheet1, "M_snb", 1
    End Sub

Diese Beispiele zeigen, wie vielseitig Du in Excel mit Makros arbeiten kannst.


Tipps für Profis

  • Verwende CodeNames: Setze CodeNames für deine Tabellenblätter ein, um die Wartbarkeit und Lesbarkeit deines Codes zu verbessern.
  • Dokumentiere deinen Code: Schreibe Kommentare, um anderen (oder Dir selbst) später zu helfen, den Code besser zu verstehen.
  • Testen: Teste immer deine Makros in einer sicheren Umgebung, bevor Du sie in produktiven Dateien einsetzt.

FAQ: Häufige Fragen

1. Wie finde ich den CodeName eines Tabellenblatts? Du kannst den CodeName eines Tabellenblatts im VBA-Editor unter "Projekt-Explorer" einsehen.

2. Was passiert, wenn ich das Tabellenblatt umbenenne? Wenn Du den sichtbaren Namen verwendest, wird das Makro nach der Umbenennung nicht mehr funktionieren. Verwende besser den CodeName.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige