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

If Target.Column 2 Then Exit Sub

Forumthread: If Target.Column 2 Then Exit Sub

If Target.Column 2 Then Exit Sub
05.01.2003 21:12:08
Harald K
Hallo im Excelforum,

mit If Target.Column <> 2 Then Exit Sub breche ich das Makro ab wenn nicht die zweite Spalte ausgewählt wird, nun möchte ich das Makro nur ausführen wenn der Wert in B9 bis B11 verändert wird.
Mein Gedanke ist
If Range("B9:B11") <> hier fehlt mir der Wert? Then Exit Sub

Gruß Harald

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: If Target.Column 2 Then Exit Sub
05.01.2003 21:19:28
Ramses
Hallo Harald,

kopiere den Code in das Klassenmodul deiner Tabelle

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Row > 8 And Target.Row < 12 Then
MsgBox "HALLO"
End If
End Sub

Gruss Rainer

Re: If Target.Column 2 Then Exit Sub
05.01.2003 21:19:28
Ramses
Hallo Harald,

kopiere den Code in das Klassenmodul deiner Tabelle

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Row > 8 And Target.Row < 12 Then
MsgBox "HALLO"
End If
End Sub

Gruss Rainer

Anzeige
Re: If Target.Column 2 Then Exit Sub
05.01.2003 21:24:08
Harald K
Hallo Rainer,
vielen dank für deine schnelle Hilfe, bin jetzt wieder etwas schlauer geworden.

Gruß Harald

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel VBA: Mit If Target.Column Arbeiten


Schritt-für-Schritt-Anleitung

Um ein Makro in Excel VBA zu erstellen, das nur ausgeführt wird, wenn der Wert in bestimmten Zellen geändert wird, kannst du den folgenden Code verwenden. Dieser Code prüft, ob die Änderung in der zweiten Spalte (B) und in den Zeilen 9 bis 11 erfolgt:

  1. Öffne Excel und gehe zu dem Arbeitsblatt, in dem du das Makro anwenden möchtest.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Doppelklicke im Projekt-Explorer auf das Arbeitsblatt, in dem du den Code einfügen möchtest.
  4. Füge den folgenden Code in das Klassenmodul ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 And Target.Row > 8 And Target.Row < 12 Then
        MsgBox "HALLO"
    End If
End Sub

Dieser Code verwendet If Target.Column = 2 Then, um zu überprüfen, ob die Änderung in der zweiten Spalte stattgefunden hat. Wenn dies der Fall ist und die Zeile zwischen 9 und 11 liegt, wird eine Nachricht angezeigt.


Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass der Code im richtigen Klassenmodul eingefügt wurde (z.B. im Arbeitsblattmodul und nicht im Modul).
  • Fehler: Es wird eine Fehlermeldung angezeigt, wenn du die Zelle änderst.

    • Lösung: Überprüfe den Code auf Syntaxfehler oder falsche Zellreferenzen.

Alternative Methoden

Eine andere Methode, um die Änderung in mehreren Zellen zu überwachen, ist die Verwendung von Intersect. Hier ein Beispiel, wie du das umsetzen kannst:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("B9:B11")) Is Nothing Then
        MsgBox "Wert in B9 bis B11 geändert!"
    End If
End Sub

Hier wird überprüft, ob die geänderte Zelle innerhalb des Bereichs B9 bis B11 liegt.


Praktische Beispiele

Ein praktisches Beispiel könnte sein, dass du eine automatische Berechnung oder eine Datenvalidierung durchführen möchtest, wenn ein Wert in der zweiten Spalte geändert wird. Du könntest den Code erweitern, um eine Berechnung durchzuführen oder andere Zellen zu aktualisieren:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 And Target.Row > 8 And Target.Row < 12 Then
        ' Beispiel: Wert in Zelle C9 aktualisieren
        Me.Cells(Target.Row, 3).Value = Target.Value * 2
    End If
End Sub

In diesem Beispiel wird der Wert in der entsprechenden Zelle in Spalte C verdoppelt, wenn eine Änderung in Spalte B erfolgt.


Tipps für Profis

  • Verwende Application.EnableEvents = False, um zu verhindern, dass das Makro in einer Endlosschleife läuft, wenn du innerhalb des Makros Zellen änderst. Vergiss nicht, es am Ende des Makros wieder auf True zu setzen.

  • Dokumentiere deinen Code mit Kommentaren, um ihn für zukünftige Änderungen verständlich zu halten.

  • Teste deinen Code gründlich, bevor du ihn in einer produktiven Umgebung einsetzt.


FAQ: Häufige Fragen

1. Was passiert, wenn ich die Bedingungen im If-Statement ändere?
Die Bedingungen im If-Statement bestimmen, wann der Code ausgeführt wird. Eine Änderung kann dazu führen, dass das Makro bei anderen Zelländerungen reagiert oder nicht mehr reagiert.

2. Kann ich mehrere Bedingungen im If-Statement kombinieren?
Ja, du kannst mehrere Bedingungen mit And oder Or kombinieren, um komplexere Logik zu erstellen. Beispiel: If Target.Column = 2 And (Target.Row = 9 Or Target.Row = 10) Then.

3. Was ist der Unterschied zwischen If Target.Column und If Target.Row?
If Target.Column prüft die Spalte der geänderten Zelle, während If Target.Row die Zeile prüft. Beide sind wichtig, um spezifische Zellen zu überwachen.

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