Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makroaufruf auf ein bestimmtes Blatt beschränken

Forumthread: Makroaufruf auf ein bestimmtes Blatt beschränken

Makroaufruf auf ein bestimmtes Blatt beschränken
05.11.2004 23:24:36
Barbara
Hallo,
Wie muss ich es anstellen, dass ein Makro nur in jenem Tabellenblatt ausführabr ist, in das ich es im VBA-Fenster geschrieben habe?
Es soll über den Makroaufruf in Excel auch nur dann angeboten werden, wenn ich tatsächlich auf diesem Blatt bin.
LG,
Barbara.
Anzeige
AW: Makroaufruf auf ein bestimmtes Blatt beschränken
Ulf
"Es soll über den Makroaufruf in Excel auch nur dann angeboten werden..."
Wie ist das zu deuten? Was ist der Makroaufruf?
Ulf
AW: Makroaufruf auf ein bestimmtes Blatt beschränken
06.11.2004 00:03:13
Barbara
Makroaufruf: Im Excel-Fenster mit Alt+F8 kann ich alle Makros aufrufen.
Und da sollen nur die erscheinen, die im "Modul1,2,3" usw. und im aktuellen Tabellenblatt stehen, nicht aber, die in den VBA-Blättern der anderen Blätter stehen.
LG, Barbara
Anzeige
AW: Makroaufruf auf ein bestimmtes Blatt beschränken
Ulf
Mach Private Sub daraus.
Ulf
AW: Makroaufruf auf ein bestimmtes Blatt beschränken
Barbara
Dann seh ich es überhaupt nicht mehr.
Was meinst Du damit?
AW: Makroaufruf auf ein bestimmtes Blatt beschränken
Ulf
Zur Auswahl stehen: Public Sub(oder gleichwertig nur Sub), Private Sub und
Option Private Module, mehr gibts nicht. Private Sub und Sub in Modulen, die
mit Option Private Module gekennzeichnet sind, werden nicht angezeigt, alles andere ist zu sehen, mach was daraus.
Ulf
Anzeige
AW: Makroaufruf auf ein bestimmtes Blatt beschränken
06.11.2004 00:56:12
Barbara
Ulf, Du schreibst, ich soll für meinen Fall Private Sub verwenden, was aber überhaupt nix bringt.
Dann zählt Du auf, was es alles gibt. Das beantwortet meine Frage auch nicht.
Nun frage ich nochmals: Was meinst Du damit?
LG, Barbara
AW: Makroaufruf auf ein bestimmtes Blatt beschränken
Ulf
Sorry, ich passe mangels Verständnis für dein eigentliches Anliegen.
Ulf
Anzeige
AW: Makroaufruf auf ein bestimmtes Blatt beschränken
Barbara
OK, dann zäumen wir das Pferd mal von hinten auf.
Ich frage mal anders:
Ich schreine ein Makro in das VBA-Fenster.
Da gibt es, wenn ich es in die offene datei schreiben will, die Möglichkeit, den Code in jedes Tabellenblatt zu schreiben. Und dann auch noch in "Diese Arbeitsmappe" der so ähnlich.
Wo soll ich nun schreiben? Ist das egal? Oder ist das irgend wo von Bedeutung, in welches Fenster ich das reinschreib?
Anzeige
AW: Makroaufruf auf ein bestimmtes Blatt beschränken
06.11.2004 09:55:10
DieterB
Hallo Barbara,

Sub Makro()
'
'
Code
'
'
End Sub

Dies ist ein "öffentliches" Makro.
Das siehst du über Extras, Optionen, Makros.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Code
End Sub


Dieses Makro ist nur in dem Blatt verfügbar, in dem der Code staht.
Es ist sozusagen ein "privates" Makro, daher unter Extras, Optionen, Makros nicht zu sehen.
Den Sub's kannst du z.B. eine Schaltfläche zuordenen.
Wenn du unter Ansicht, Symbolleisten, Zeichen einen Command-Button erstellst,
wird automatisch der Code

Private Sub Commandbutton_onClick erstellt.
Diesem Code kannst du auch keine Schaltfläche (aus Formular) zuweisen.
Jetzt erhebt sich allerdings die steile Frage, was willst du überhaupt mit den Makros
anfangen.
Gruß
DieterB

Anzeige
AW: Makroaufruf auf ein bestimmtes Blatt beschränken
Barbara
OK, das mit dem Commandbutton habe ich gemacht.
Nur, wenn ich diesen da anklicke, öffnet sich das VBA-Fenster an der entsprechenden Stelle. Der Code wird aber nicht ausgeführt.
Steile Frage (was willst du überhaupt mit den Makros
anfangen), flache Antwort:
Ich rufe das Makro über das Excel-Menü Alt+F8 auf. Und da klicke ich das gewünschte Makro an.
es soll aber nur in einem bestimmten Tabellenblatt, namens "Auszug" ausgeführt werden, in den anderen Blättern hätte es zerstörerische Wirkung. Und das soll nicht sein.
Deshalb frage ich mich (und Euch), in welches Blatt ich nun mein Makro reinschreiben soll, wo doch ohnehin von jedem Blatt alle Public-Makros aufgerufen werden können.
Welchen Unterschied macht es, ob mein Makro nun im einen oder im anderen Blatt steht?
Anzeige
Warum so kompliziert....
Ramses
Hallo
Schrein gleich utner "Sub ..."
If ActiveSheet.Name = "Dein_Blattname" then Exit sub
und das Makro wird für die aktuelle Tabelle nicht ausgeführt
Gruss Rainer
AW: Warum so kompliziert....
Barbara
Du meinst wohl
If not
Ja sicher, das wäre eine gute Möglichkeit.
Danke.
AW: Makroaufruf auf ein bestimmtes Blatt beschränken
Bert
bei aller Liebe zur Hilfe, die meisten Fragen lassen sich durch Nutzung der F1-Taste
bzw. des Objektkatalogs klären.
Der Unterschied zwischen Standarmodulen und Klassenmodulen(das sind Module der Tabellen, DieseArbeitsmappe und Module in Userforms)ist in der Hilfe ausreichend erklärt.
Scheinbar ist es aber einfacher, einfach mal eine Frage im Forum zu stellen.
Bert
Anzeige
AW: Makroaufruf auf ein bestimmtes Blatt beschränken
Ulf
Mach Private Sub daraus.
Ulf
AW: Makroaufruf auf ein bestimmtes Blatt beschränken
th.heinrich
hallo Barbara,
rechtsclick auf reiter der TABELLE, CODE ANZEIGEN.
entsprechendes ereignis auswaehlen und CODE reinkopieren.
gruss thomas
;
Anzeige

Infobox / Tutorial

Makroaufruf auf ein bestimmtes Blatt beschränken


Schritt-für-Schritt-Anleitung

Um ein Makro nur auf einem bestimmten Tabellenblatt auszuführen, kannst Du den folgenden VBA-Code verwenden. Gehe dazu wie folgt vor:

  1. VBA-Editor öffnen: Drücke Alt + F11, um den VBA-Editor zu öffnen.
  2. Das gewünschte Blatt auswählen: Klicke im Projekt-Explorer auf das Tabellenblatt, auf dem das Makro ausgeführt werden soll.
  3. Code einfügen: Füge den folgenden Code in das entsprechende Fenster ein:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       If ActiveSheet.Name <> "Auszug" Then Exit Sub
       ' Füge hier deinen Code ein
    End Sub

    Dieser Code sorgt dafür, dass der Makroaufruf nur auf dem Blatt "Auszug" ausgeführt wird.


Häufige Fehler und Lösungen

  • Problem: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass der Code im richtigen Blattmodul eingefügt wurde. Wenn Du ihn in ein Standardmodul eingefügt hast, wird das Makro nicht auf das Blatt beschränkt.
  • Problem: Der Code öffnet das VBA-Fenster.

    • Lösung: Achte darauf, dass Du den Code in eine Sub-Prozedur schreibst, die die gewünschten Aktionen enthält. Wenn Du einen CommandButton verwendest, stelle sicher, dass der Code richtig zugeordnet ist.

Alternative Methoden

Eine weitere Möglichkeit, die Ausführung eines Makros auf ein bestimmtes Blatt zu beschränken, ist die Verwendung einer Public Sub in einem Standardmodul mit einer Überprüfung des aktiven Blattes:

Sub MeinMakro()
    If ActiveSheet.Name <> "Auszug" Then Exit Sub
    ' Füge hier deinen Code ein
End Sub

Diese Methode ermöglicht es Dir, das Makro über Alt + F8 aufzurufen, jedoch wird es nur auf dem Blatt "Auszug" ausgeführt.


Praktische Beispiele

Ein Beispiel für ein Makro, das nur auf dem Blatt "Auszug" funktioniert:

Sub DatenAktualisieren()
    If ActiveSheet.Name <> "Auszug" Then Exit Sub
    ' Hier wird die Datenaktualisierung durchgeführt
    MsgBox "Daten wurden aktualisiert!"
End Sub

Wenn Du das Makro aufrufst und nicht auf dem richtigen Blatt bist, passiert nichts.


Tipps für Profis

  • Verwendung von 'Option Private Module': Durch die Verwendung von Option Private Module kannst Du sicherstellen, dass die in einem Modul enthaltenen Makros nicht von anderen Modulen aus aufgerufen werden können.

  • Ereignisgesteuerte Makros: Nutze Worksheet_Change oder Worksheet_SelectionChange, um Makros automatisch auszuführen, wenn sich Daten ändern oder wenn Du das Blatt verlässt.

  • F1-Taste verwenden: Nutze die F1-Taste für Hilfe im VBA-Editor. Der Objektkatalog kann Dir viele Informationen über die Unterschiede zwischen Public und Private Sub geben.


FAQ: Häufige Fragen

1. Frage
Wie kann ich sicherstellen, dass mein Makro nur für das aktuelle Blatt funktioniert?
Antwort: Verwende eine Bedingung im Code, die das aktive Blatt überprüft, bevor das Makro ausgeführt wird.

2. Frage
Wo sollte ich meinen VBA-Code einfügen?
Antwort: Der Code sollte im Blattmodul für das entsprechende Blatt eingefügt werden, um die Funktionalität auf dieses Blatt zu beschränken.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige