Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1716to1720
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

DropButtonClick Event "auflösen"

DropButtonClick Event "auflösen"
15.10.2019 14:30:33
Sven
Hallo,
zur besseren Übersichtlichkeit eines Userforms habe ich folgenden Code hinterlegt:
Private Sub Cbox_Pauschal_1_DropButtonClick()
'Formatierung
Cbox_Pauschal_1.BackColor = &H404040 'dunkelgrau
Cbox_Pauschal_1.ForeColor = &HFFFFFF 'weiß
End Sub
Sobald ich auf die ComboBox klicke, ändert sich die Hintergrundfarbe (zur besseren Lesbarkeit).
Für den Change habe ich folgenden Code:
Private Sub Cbox_Pauschal_1_Change()
'Formatierung
Select Case Cbox_Pauschal_1.Value
Case "Bsp1"
tb_Datum_1.Value = ""
tb_Betrag_1.Value = ""
Cbox_Pauschal_1.BackColor = &HC0FFC0 'grün
Cbox_Pauschal_1.ForeColor = &H0& 'schwarz
Case "Bsp2"
tb_Datum_1.Value = ""
tb_Betrag_1.Value = ""
Cbox_Pauschal_1.BackColor = &HC0FFFF 'gelb
Cbox_Pauschal_1.ForeColor = &H0& 'schwarz
End Select
End Sub
Die Hintergrundfarbe der ComoBox soll also wieder geändert werden.
Mein Problem liegt nun darin, dass sich die Farbe erst nach dem Verlassen der ComoBox ändert. Alle anderen Aktionen werden direkt ausgeführt - nur die Farbe eben nicht.
Hat jemand eine Idee?
Vielen Dank!
Gruß Sven

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: DropButtonClick Event "auflösen"
15.10.2019 15:04:56
Nepumuk
Hallo Sven,
bau mal nach End Select ein RePaint ein.
Gruß
Nepumuk
AW: DropButtonClick Event "auflösen"
15.10.2019 15:16:51
Sven
Hallo Nepumuk,
danke für deine schnelle Antwort. Funktioniert leider nicht.
Gruß Sven
AW: DropButtonClick Event "auflösen"
15.10.2019 15:43:15
Nepumuk
Hallo Sven,
das wird so nichts. Im Anschluss an das Change-Event wird nochmal das DropButtonClick-Event aufgerufen.
da fällt mir auch keine Lösung ein.
Ich lass die frage offen.
Gruß
Nepumuk
AW: DropButtonClick Event "auflösen"
15.10.2019 15:43:41
Nepumuk
Hallo Sven,
das wird so nichts. Im Anschluss an das Change-Event wird nochmal das DropButtonClick-Event aufgerufen.
da fällt mir auch keine Lösung ein.
Ich lass die frage offen.
Gruß
Nepumuk
Anzeige
AW: DropButtonClick Event "auflösen"
15.10.2019 15:49:30
Sven
Ok, danke. Vielleicht hat ja noch jemand eine Idee.
AW: DropButtonClick Event "auflösen"
15.10.2019 16:01:34
Sven
Kontrollkästchen aktiviert...
AW: DropButtonClick Event "auflösen"
15.10.2019 16:12:52
Nepumuk
Hallo Sven,
jetzt habe ich es mir nochmal zu Gemüte geführt und das ist dabei rausgekommen:
Option Explicit

Private mblnEvent As Boolean

Private Sub Cbox_Pauschal_1_Change()
    'Formatierung
    mblnEvent = True
    Select Case Cbox_Pauschal_1.Value
        Case "Bsp1"
            tb_Datum_1.Value = ""
            tb_Betrag_1.Value = ""
            Cbox_Pauschal_1.BackColor = &HC0FFC0 'grün
            Cbox_Pauschal_1.ForeColor = &H0& 'schwarz
        Case "Bsp2"
            tb_Datum_1.Value = ""
            tb_Betrag_1.Value = ""
            Cbox_Pauschal_1.BackColor = &HC0FFFF 'gelb
            Cbox_Pauschal_1.ForeColor = &H0& 'schwarz
    End Select
End Sub

Private Sub Cbox_Pauschal_1_DropButtonClick()
    'Formatierung
    If Not mblnEvent Then
        Cbox_Pauschal_1.BackColor = &H404040 'dunkelgrau
        Cbox_Pauschal_1.ForeColor = &HFFFFFF 'weiß
    End If
    mblnEvent = False
End Sub

Gruß
Nepumuk
Anzeige
AW: DropButtonClick Event "auflösen"
15.10.2019 16:28:50
Sven
Hallo Nepumuk,
das funktioniert! Ausgezeichnet, vielen Dank für deine Hilfe!
Gruß Sven
AW: DropButtonClick Event "auflösen"
15.10.2019 17:35:52
Sven
Noch eine kleine Ergänzung:
Beim erstmaligen Ausführen von "Cbox_Pauschal_1_DropButtonClick" wurde mblnEvent immer mit "True" ausgegeben. Die Variable beim Initialisieren auf "True" zu setzen, hat irgendwie nicht funktioniert.
Habe es nun so gelöst:
Sub Cbox_Kurzbezeichnung_1_DropButtonClick()
'Formatierung
If strEvent = "Start" Then
mblnEvent = False
strEvent = "Bearbeitung"
Else
'do nothing
End If
If Not mblnEvent Then
Cbox_Kurzbezeichnung_1.BackColor = &H404040 'dunkelgrau
Cbox_Kurzbezeichnung_1.ForeColor = &HFFFFFF 'weiß
End If
mblnEvent = False
End Sub
strEvent wird beim Initialisieren definiert. Wäre ich alleine trotzdem nie drauf gekommen...
Anzeige
AW: DropButtonClick Event "auflösen"
15.10.2019 17:38:32
Sven
Korrektur: [...] Die Variable beim Initialisieren auf "False" zu setzen [...]
AW: DropButtonClick Event "auflösen"
15.10.2019 18:01:06
Luschi
Hallo Sven,
jede definierte Variable vom Typ 'Boolean' hat als Standard den Wert 'False'.
Ein Problem ist aber immer noch nicht gelöst:
- ist der CB-Wert 'Bsp1' und der User wählt wieder 'Bsp1'
- dann wird das Change-Ereignis der ComboBox nicht ausgelöst
- und die Farben sind dann weiß auf dunkelgrau
Solche Farbspielchen sind zwar seht nett, bringen aber einen Rattenschwanz von Nachjustierungen mit sich; besonders dann, wenn es viele dieser aufgehübschten Objekte im Formular gibt.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: DropButtonClick Event "auflösen"
15.10.2019 18:24:14
Sven
Hallo Luschi,
dass Variablen vom Typ "Boolean" standardmäßig den Wert "False" haben, hatte ich auch gelesen. Hatte es über "debug.print" ausgetestet - beim erstmaligen Start des DropButtonClick-Subs (also direkt nach der Initialisierung) sprang die Variable dennoch immer auf "True".
Stimmt... Ändert sich die Auswahl nicht, dann bleibt die Farbe leider dunkelgrau. Damit könnte ich aber im Zweifel leben. Das Verlassen der ComboBox konnte ich über Exit abfangen.
Mit dem Rattenschwanz hast du sicherlich auch Recht. Ob sich die "Verrenkungen" und der zusätzliche Zeitaufwand letztlich lohnen, ist schon fraglich. Hoffe ja aber, dass das Tool einige Jahre in Nutzung ist, damit sollte sich das dann auch amortisieren :)
Gruß Sven
Anzeige
AW: DropButtonClick Event "auflösen"
15.10.2019 18:50:41
Nepumuk
Hallo Sven,
versuch es mal so:
Private Sub Cbox_Pauschal_1_DropButtonClick()
    'Formatierung
    If Not mblnEvent Then
        With Cbox_Pauschal_1
            .BackColor = &H404040 'dunkelgrau
            .ForeColor = &HFFFFFF 'weiß
            .ListIndex = -1
        End With
    End If
    mblnEvent = False
End Sub

Gruß
nepumuk
Anzeige
AW: DropButtonClick Event "auflösen"
15.10.2019 19:12:18
Sven
Hallo Nepumuk,
schöne Idee! Leider bekomme ich hier Probleme, wenn keine Auswahl nach dem Betätigen des DropButtons getätigt wurde.
Die Variable "mblnEvent" springt auch hier wieder auf "True" beim erstmaligen Start des DropButtonSubs.
Gruß Sven

71 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige