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

Makro beim Verlassen einer best. Zelle ausführen

Forumthread: Makro beim Verlassen einer best. Zelle ausführen

Makro beim Verlassen einer best. Zelle ausführen
05.03.2003 11:37:05
Daniel Köchler
Hallo,

wie kann man ein Makro ausführen lassen, wenn in der Zelle A1 ein Wert verändert bzw. die Zelle dadurch verlassen wurde?

Daniel

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Makro beim Verlassen einer best. Zelle ausführen
05.03.2003 12:18:42
Herbert

Hallo Daniel,
Mit diesem Ereignismakro könntest du das lösen:


Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
Call Mein_Makro
End If
End Sub 
     
Gruß Herbert

Anzeige
Re: Makro beim Verlassen einer best. Zelle ausführen
05.03.2003 12:20:43
Kl@us-M.

Hallo Daniel,
folgenden Code in ein Modul, Eintrag in Zelle A1 und ENTER oder mit Maus in andere Zelle springen:

Gruss aus dem Hunsrück
Klaus-Martin

Re: Makro beim Verlassen einer best. Zelle ausführen
05.03.2003 12:22:23
Lutz

Hallo Daniel,

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Left(Target.Address, 4) = "$A$1" Then Makro1
End Sub

Gruß
Lutz

Anzeige
das geht alles nicht?
05.03.2003 19:36:37
Daniel Köchler

Hallo Leute,

warum funktioniert das bei mir nicht. Nochmals meine Vorstellungen:

Ich habe z.B. in A1 den Wert 25. Wenn nun der Wert geändert wird, dann soll ein Makro ausgeführt werden, und zwar bei jeder Änderung.

Soll ich das ganze in ein eigenes Modul schreiben?

Daniel

Re: das geht alles nicht?
05.03.2003 19:45:44
Herbert

Du mußt das in das Klassenmodul der Tabelle geben,
wo dieses Ereignis stattfinden soll.
Gruß Herbert

Anzeige
Danke!!
07.03.2003 11:06:46
Daniel Köchler

Grüße

Daniel

Anzeige

Infobox / Tutorial

Makro ausführen beim Verlassen einer Zelle in Excel


Schritt-für-Schritt-Anleitung

Um ein Excel VBA Makro auszuführen, wenn eine bestimmte Zelle, wie beispielsweise die Zelle A1, verlassen wird, kannst du die folgenden Schritte befolgen:

  1. Öffne die Excel-Datei, in der du das Makro implementieren möchtest.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Suche im Projektfenster die Tabelle, in der du das Ereignis abfangen möchtest (z.B. "Tabelle1").
  4. Doppelklicke auf die Tabelle, um das Codefenster zu öffnen.
  5. Füge den folgenden Code ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
        Call Mein_Makro
    End If
End Sub
  1. Ersetze Mein_Makro mit dem Namen deines spezifischen Makros.
  2. Schließe den VBA-Editor und teste die Funktion, indem du den Wert in Zelle A1 änderst und die Zelle verlässt.

Häufige Fehler und Lösungen

  • Problem: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass der Code im Klassenmodul der entsprechenden Tabelle eingegeben wurde, nicht in einem allgemeinen Modul.
  • Problem: Der Code funktioniert nur einmal.

    • Lösung: Überprüfe, ob du den Code im richtigen Modul platziert hast und ob Worksheet_Change das richtige Ereignis ist.

Alternative Methoden

Eine alternative Methode besteht darin, das Ereignis in einem allgemeinen Modul zu deklarieren. Füge im Modul folgenden Code hinzu:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Left(Target.Address, 4) = "$A$1" Then
        Makro1
    End If
End Sub

Diese Methode lässt sich verwenden, um das Makro beim Verlassen der Zelle in jeder Tabelle auszuführen.


Praktische Beispiele

Hier sind einige Beispiele, wie du das Makro verwenden kannst:

  • Beispiel 1: Wenn du in Zelle A1 einen neuen Wert eingibst und das Makro eine Nachricht ausgeben soll, könntest du folgendes Makro definieren:
Sub Mein_Makro()
    MsgBox "Der Wert in A1 wurde geändert!"
End Sub
  • Beispiel 2: Um eine Berechnung durchzuführen, könntest du den Wert in A1 mit einem anderen Wert multiplizieren, wenn die Zelle verlassen wird.
Sub Mein_Makro()
    Range("B1").Value = Range("A1").Value * 2
End Sub

Tipps für Profis

  • Achte darauf, dass das Makro korrekt benannt und im richtigen Modul platziert ist.
  • Nutze Application.EnableEvents = False und Application.EnableEvents = True, um wiederholte Ereignisse zu vermeiden.
  • Dokumentiere deinen Code, um die Wartung zu erleichtern.

FAQ: Häufige Fragen

1. Wo genau soll ich den VBA-Code einfügen?
Der Code muss im Klassenmodul der Tabelle platziert werden, in der das Ereignis stattfinden soll.

2. Funktioniert das nur in bestimmten Excel-Versionen?
Der beschriebene Prozess sollte in den meisten modernen Excel-Versionen (Excel 2007 und höher) funktionieren. Achte darauf, dass die Makros aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige