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

Makro auslösen bei Zelländerung

Forumthread: Makro auslösen bei Zelländerung

Makro auslösen bei Zelländerung
26.01.2007 09:06:27
Michael
Liebe Profis!
Ich habe mir ein Makro zusammengebastelt, dass mir in meinem oft benutzten Formulardie Eingabe in der Datumszelle erleichtert, so dass ich nur noch z.B. 3101 statt 31.01.07 eingeben muss. Da ich das Formular mittels Makrobutton abschliesse, habe ich einfach diesen Code vornedran gehängt:
Dim datum2 As Long
datum2 = ActiveSheet.Cells(8, 2).Value
If datum2 &lt 101 Or datum2 &gt 3112 Then GoTo datumstimmt
mon = Right(datum2, 2)
If datum2 &gt 912 Then wota = Left(datum2, 2) Else wota = Left(datum2, 1)
ActiveSheet.Cells(8, 2).Value = Format(wota, "00") & "." & mon & "." & Year(Now)
datumstimmt:
Jetzt wäre mir aber lieber, wenn Excel dieses Makro sofort ausführen würde, wenn ich etwas in die Datumszelle schreibe. Ich habe mal ein Makro mit der Start-Voraussetzung Worksheet_selectionChange oder so ähnlich gesehen, leider komme ich hier mit Basteln aber nicht weiter.
Danke im Voraus
Michael
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro auslösen bei Zelländerung
26.01.2007 09:22:17
ronny
hallo michael,
so geht's:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = ("$B$(") Then
DEIN MAKRO
End If
End Sub

gruß ronny
sorry Tippfehler, das ist richtig !!
26.01.2007 09:24:04
ronny

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = ("$B$8") Then
DEIN MAKRO
End If
End Sub

Anzeige
AW: sorry Tippfehler, das ist richtig !!
26.01.2007 09:25:26
Michael
Super, vielen Dank!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Makro auslösen bei Zelländerung in Excel


Schritt-für-Schritt-Anleitung

Um ein Makro automatisch auszulösen, wenn eine bestimmte Zelle in Excel geändert wird, kannst du die folgende Schritt-für-Schritt-Anleitung nutzen:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle das entsprechende Arbeitsblatt:

    • Im Projektfenster auf der linken Seite, doppelklicke auf das Arbeitsblatt, in dem du das Makro auslösen möchtest.
  3. Füge den Code ein:

    • Kopiere den folgenden Code und füge ihn in das Codefenster des Arbeitsblatts ein:
    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
       If Target.Address = "$B$8" Then
           ' DEIN MAKRO
       End If
    End Sub
    • Ersetze DEIN MAKRO mit dem Code, den du ausführen möchtest.
  4. Speichere die Datei als Makro-aktivierte Arbeitsmappe:

    • Gehe zu Datei -> Speichern unter und wähle den Typ Excel-Arbeitsmappe mit Makros (*.xlsm).
  5. Teste dein Makro:

    • Ändere den Wert in Zelle B8 und überprüfe, ob das Makro wie gewünscht ausgeführt wird.

Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt:

    • Stelle sicher, dass der Makro-Schutz nicht aktiviert ist. Gehe zu Datei -> Optionen -> Trust Center -> Einstellungen für das Trust Center und aktiviere die Makros.
  • Fehler: Falsche Zelladresse:

    • Überprüfe, ob du die richtige Zelladresse im Code angegeben hast. Zum Beispiel, ändere "$B$8" in die Zelle, die du überwachen möchtest.

Alternative Methoden

Falls du eine andere Methode bevorzugst, kannst du auch die Worksheet_SelectionChange-Ereignisprozedur verwenden, jedoch ist dies weniger effizient als Worksheet_Change. Hier ein Beispiel:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    If Target.Address = "$B$8" Then
        ' DEIN MAKRO
    End If
End Sub

Das obige Beispiel wird ausgeführt, wenn die Zelle B8 ausgewählt wird, nicht nur bei einer Änderung.


Praktische Beispiele

Hier ist ein einfaches Beispiel für ein Makro, das das aktuelle Datum in die Zelle B8 schreibt, wenn der Wert geändert wird:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Address = "$B$8" Then
        Target.Value = Now()
    End If
End Sub

Wenn du nun B8 änderst, wird das aktuelle Datum automatisch in die Zelle geschrieben.


Tipps für Profis

  • Verwende Application.EnableEvents: Um zu verhindern, dass das Makro in einer Schleife läuft, kannst du Events vorübergehend deaktivieren:

    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
      Application.EnableEvents = False
      ' DEIN MAKRO
      Application.EnableEvents = True
    End Sub
  • Debugging: Nutze Debug.Print im Code, um Werte während der Ausführung zu protokollieren und Fehler schneller zu finden.


FAQ: Häufige Fragen

1. Kann ich mehrere Zellen überwachen?
Ja, du kannst die Bedingungen im If-Block erweitern, um mehrere Zellen zu überwachen, z.B. If Target.Address = "$B$8" Or Target.Address = "$C$8" Then.

2. Funktioniert das auch in Excel 365?
Ja, diese Methode funktioniert in Excel 365 sowie in anderen Versionen, die VBA unterstützen.

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