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

Worksheet_Change(ByVal Target As Excel.Range)

Forumthread: Worksheet_Change(ByVal Target As Excel.Range)

Worksheet_Change(ByVal Target As Excel.Range)
04.11.2002 14:59:55
matthias
Hallo,

ich möchte, daß eine Aktion ausgelöst wird, wenn eine Zelle im Bereich C9:E10 verändert wird. Wie kann mir das gelingen?

Vielen Dank

Matthias

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Worksheet_Change(ByVal Target As Excel.Range)
04.11.2002 15:25:16
Andre B
Kein Problem:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Set Bereich = Range("C9:E10")
If Intersect(Target, Bereich) Is Nothing Then Exit Sub

Hier dein Makro und alles läuft!

End Sub

Re: Worksheet_Change(ByVal Target As Excel.Range)
04.11.2002 15:25:52
Hajo_Zi
Hallo Matthias

leider hast Du Deine Aufgabe nich klar bescgrieben. Hier mal ein Code der die Schriftfarbe ändert bei Eingabe ubd auch für den Fall das mehere Zellen mit einmal gefüllt werden.

Gruß Hajo

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Automatisierte Aktionen in Excel mit Worksheet_Change


Schritt-für-Schritt-Anleitung

Um eine Aktion auszulösen, wenn eine Zelle im Bereich C9:E10 verändert wird, kannst Du den folgenden VBA-Code in das entsprechende Arbeitsblatt-Modul einfügen. Dies geschieht über den Visual Basic for Applications (VBA) Editor:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Suche im Projektfenster das Arbeitsblatt, auf dem Du die Aktion auslösen möchtest.
  3. Klicke doppelt auf das Arbeitsblatt, um das Code-Fenster zu öffnen.
  4. Füge den folgenden Code ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Bereich As Range
    Set Bereich = Range("C9:E10")

    If Not Intersect(Target, Bereich) Is Nothing Then
        ' Hier Deine Aktion einfügen
    End If
End Sub

Dieser Code überprüft, ob die geänderte Zelle im Bereich C9:E10 liegt. Wenn ja, kannst Du an der Stelle, die mit ' Hier Deine Aktion einfügen kommentiert ist, Deinen eigenen VBA-Code einfügen.


Häufige Fehler und Lösungen

  • Fehler: "Compile error: Variable not defined"
    Lösung: Stelle sicher, dass alle Variablen korrekt deklariert sind. In diesem Fall könnte Bereich nicht definiert sein, wenn Du die Dim-Anweisung weggelassen hast.

  • Fehler: Aktion wird nicht ausgeführt
    Lösung: Überprüfe, ob der Bereich korrekt festgelegt ist und ob die Intersect-Funktion das richtige Ziel überprüft. Möglicherweise musst Du den Code im Worksheet_Change-Event verwenden, nicht im Worksheet_SelectionChange.


Alternative Methoden

Eine alternative Methode zur Überwachung von Änderungen in Excel ist die Verwendung des Worksheet_SelectionChange-Ereignisses. Hier ist ein Beispiel:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Bereich As Range
    Set Bereich = Range("C9:E10")

    If Not Intersect(Target, Bereich) Is Nothing Then
        ' Hier Deine Aktion einfügen
    End If
End Sub

Diese Methode wird jedoch nur ausgelöst, wenn Du eine Zelle auswählst, nicht wenn Du ihren Inhalt änderst.


Praktische Beispiele

Wenn Du beispielsweise die Schriftfarbe ändern möchtest, wenn eine Zelle im Bereich C9:E10 geändert wird, kannst Du den folgenden Code verwenden:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Bereich As Range
    Set Bereich = Range("C9:E10")

    If Not Intersect(Target, Bereich) Is Nothing Then
        Target.Font.Color = RGB(255, 0, 0) ' Ändert die Schriftfarbe zu Rot
    End If
End Sub

Das oben genannte Beispiel zeigt, wie Du die Schriftfarbe der geänderten Zelle änderst, wenn sie im angegebenen Bereich liegt.


Tipps für Profis

  • Debugging: Nutze Debug.Print, um den Wert von Target zu überprüfen, falls Du Schwierigkeiten hast, den richtigen Bereich zu identifizieren.

  • Leistung: Vermeide komplexe Berechnungen im Worksheet_Change-Ereignis, da dies die Leistung beeinträchtigen kann. Halte Deinen Code so leicht wie möglich.

  • VBA-Referenzen: Wenn Du mit ByVal Target As Range arbeitest, achte darauf, wie Du diesen Parameter in Deinen weiteren Berechnungen verwendest.


FAQ: Häufige Fragen

1. Was bedeutet ByVal Target As Range?
ByVal Target As Range ist ein Parameter, der die Zelle(n) angibt, die geändert wurden. Es erlaubt Dir, diese Änderungen im Code zu überwachen.

2. Kann ich mehrere Bereiche gleichzeitig überwachen?
Ja, Du kannst mehrere Bereiche mit der Union-Funktion kombinieren. Beispielsweise:

Set Bereich = Union(Range("C9:E10"), Range("G1:G5"))

Somit kannst Du verschiedene Bereiche überwachen und entsprechende Aktionen auslösen.

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