Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Change-Ereignis bei Klick auf Button

Change-Ereignis bei Klick auf Button
07.06.2018 17:24:39
Idence
Hallo an alle,
mit folgendem Code ändere ich die Formatierung einer Zelle automatisch, wenn sich sein Wert ändert.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target  "" Then
'Farbe der Zelle blau
Target.Interior.Color = 14857357
'Schriftfarbe weiß
With Target.Font
.Name = "Arial"
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
.Bold = True 'fett
End With
Else
Target.Clear
End If
End Sub
Komischerweise startet das Programm auch dann, wenn ich auf einen Button (Active-X-Steuerelement) klicke und gibt die Fehlermeldung "Typen nicht verträglich" aus. Ich möchte nur dann das Change-Ereignis auslösen, wenn ich auf eine Zelle klicke.
Hat jemand eine Idee, wie das Problem zu lösen ist?
Gruß
Idence
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Change-Ereignis bei Klick auf Button
07.06.2018 17:32:07
Hajo_Zi
man könnte vermuten Du gibst mit dem Button was in de Zelle ein?
Schalte die Reaktion auf Eingabe ab.
Ich bin mal so wie Du und poste auch nicht alles.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
AW: Change-Ereignis bei Klick auf Button
07.06.2018 17:45:07
Idence
Hallo Hajo,
danke für deinen Beitrag, es tut mir sehr Leid, dass ich die Farbe meiner Unterwäsche nicht gepostet habe :)
Jetzt zum Thema: Der Button und das Change-Ereignis haben nichts miteinander zu tun. Bei einem "leeren" Button träte der gleiche Fehler auf.
Aber ich habe das Problem glücklicherweise selbst gelöst, ganz einfach, indem ich den Bereich der Gültigkeit für das Change-Ereignis eingeschränkt habe. Anbei der neue Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Row >= 5 And Target.Column = 1 Then
If Target  "" Then
'Farbe der Zelle blau
Target.Interior.Color = 14857357
'Schriftfarbe weiß
With Target.Font
.Name = "Arial"
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
.Bold = True 'fett
End With
Else
Target.Clear
End If
End If
End Sub
Gruß
Idence
Anzeige
AW: Change-Ereignis bei Klick auf Button
07.06.2018 18:05:25
Luschi
Hallo Idence,k
wenn DEM so sein sollte, dann hast Du totalen Stuß über das Problem berichtet.
Ein Button mit leerer Ereignis-Routine kann kein 'Worksheet_Change'-Ereignis auslösen.
Und ich bin mit 1.000%-ig sicher, daß der Button-Klick eine Zelländerung ausführt.
Die von Dir vorgenommene Eingrenzung des Zellbereiches hat mit der eigentlichen Ursache
nicht viel zu tun.
Wer so rumwurschtelt, schreibt zwar viel Vba-Code, aber die Realität wird dadurch nicht ein Deut besser.
Gruß von Luschi
aus klein-Paris
Anzeige
Trick 77
07.06.2018 18:23:41
ChrisL
Hi Idence
Schön dass du das Problem lösen konntest.
Falls dich die Ursache trotzdem interessiert, einfach am Anfang vom Code
MsgBox Target.Address
Dann die Zelle beobachten, während du auf den Button klickst.
Die Gemeinde wartet natürlich gespannt auf dein Testresultat, aber du kannst es auch für dich behalten ;)
cu
Chris
PS: ich tippe auf LinkedCell, kein Button
Anzeige
AW: Trick 77
07.06.2018 18:37:05
Luschi
Hallo Chris,
der Fragesteller hat nicht das Problem gelöst, sondern nur durch eine Eingrenzung verhindert, daß im speziellen Fall des Klickens auf den Button die 'Worksheet_Change' die volle Wirkung auslöst.
Eigentlich solte es das Ziel sein, das diese Ereignisroutine überhaupt aktiviert wird!
Aber davon ist der User noch meilenweit entfernt!
Und die Farbe seiner Reizwäsche interessiert hier überhaupt Niemanden.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Trick 77
07.06.2018 18:42:02
ChrisL
Hi Luschi
Ich bin ja ganz deiner Meinung und ich wollte Idence lediglich auf nette Art näher zur Ursache schubsen. Im Moment wo er die Zelle sieht dürfte der Fall hoffentlich klar sein.
cu
Chris
AW: Change-Ereignis bei Klick auf Button
07.06.2018 17:50:57
Luschi
Hallo Idence,
auch in der Programmierung ist es so:
- es ist nicht interessant, ob Du ein Mädchen küßt
- sondern ob Du mein Mädchen küßt
Sprich: die Ursache liegt beim Klick des Buttons und nicht im geposteten Ereignis
'Worksheet_Change' und sobald Du im Klick-Ergeignis des Buttons eine Tabellen-Zelländerung vornimmst, mußt Du das nachfolgende Ergeignis 'Worksheet_Change' unterdrücken.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Change-Ereignis bei Klick auf Button
07.06.2018 19:36:03
Gerd
Moin,
die Rückfrage inm anderen Beitrag solltest du beantworten.
Private Sub CommandButton1_Click()
Application.EnableEvents = False
Range("A5") = Range("A5") + 1
Application.EnableEvents = True
End Sub

Gruß Gerd
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Change-Ereignis bei Klick auf Button in Excel VBA


Schritt-für-Schritt-Anleitung

Um ein Change-Ereignis in Excel zu implementieren, das nur bei einem Klick auf eine Zelle und nicht bei einem Button-Klick ausgelöst wird, kannst du folgenden VBA-Code verwenden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle das entsprechende Arbeitsblatt aus, in dem du das Ereignis implementieren möchtest.
  3. Füge den folgenden Code in das Arbeitsblattmodul ein:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Row >= 5 And Target.Column = 1 Then
        If Target <> "" Then
            ' Farbe der Zelle blau
            Target.Interior.Color = 14857357
            ' Schriftfarbe weiß
            With Target.Font
                .Name = "Arial"
                .ThemeColor = xlThemeColorDark1
                .TintAndShade = 0
                .Bold = True ' fett
            End With
        Else
            Target.Clear
        End If
    End If
End Sub
  1. Stelle sicher, dass das Ereignis nur für den gewünschten Zellbereich gilt, indem du die If-Bedingung anpasst.

Häufige Fehler und Lösungen

  • Fehlermeldung "Typen nicht verträglich": Diese Fehlermeldung tritt auf, wenn das Change-Ereignis durch einen Button-Klick ausgelöst wird. Um dies zu vermeiden, kannst du die Bedingung anpassen, um sicherzustellen, dass nur Zellen im definierten Bereich betroffen sind.

  • Ereignis wird nicht ausgelöst: Wenn das Change-Ereignis nicht reagiert, überprüfe, ob der Code im richtigen Arbeitsblattmodul steht und ob die Eingabe in den zulässigen Bereich erfolgt.


Alternative Methoden

Eine alternative Methode, um das vba button click auslösen zu handhaben, ist die Verwendung von CommandButton-Ereignissen. Hier ein Beispiel:

Private Sub CommandButton1_Click()
    Application.EnableEvents = False
    Range("A5") = Range("A5") + 1
    Application.EnableEvents = True
End Sub

Hierbei wird das EnableEvents-Flag verwendet, um zu verhindern, dass das Worksheet_Change-Ereignis bei einem Klick auf den Button ausgelöst wird.


Praktische Beispiele

  1. Zellenformatierung: Wenn du eine Zelle änderst (z.B. in der Spalte A ab Zeile 5), wird die Zellenfarbe automatisch geändert, solange der Wert nicht leer ist.

  2. Zähler erhöhen: Ein Button kann verwendet werden, um einen Zähler in einer Zelle zu erhöhen, ohne das Change-Ereignis auszulösen.


Tipps für Profis

  • Nutze die MsgBox-Funktion, um die Adresse der Zelle anzuzeigen, die du änderst. Dies kann dir helfen, das Verhalten des Change-Ereignisses besser zu verstehen:
MsgBox Target.Address
  • Teste deinen Code, indem du verschiedene Zellen und Buttons in deiner Excel-Datei verwendest, um sicherzustellen, dass die Interaktion zwischen ihnen wie gewünscht funktioniert.

FAQ: Häufige Fragen

1. Warum wird das Change-Ereignis bei einem Button-Klick ausgelöst?
Das Change-Ereignis wird ausgelöst, wenn eine Zelle geändert wird, auch durch einen Button, der eine Zelländerung bewirkt. Um dies zu vermeiden, solltest du das EnableEvents-Flag verwenden.

2. Kann ich die Zellenformatierung direkt im Button-Klick-Ereignis vornehmen?
Ja, du kannst die Zellenformatierung auch direkt im Button-Klick-Ereignis vornehmen, indem du die entsprechenden Formatierungsbefehle im CommandButton1_Click-Ereignis einfügst.

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