Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Image
BildScreenshot zu Image Image-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

VBA UserForm Font Farbe ändern

Betrifft: VBA UserForm Font Farbe ändern von: SüßerApfel
Geschrieben am: 12.09.2020 18:53:35

Guten Abend da draußen,

ich habe da ein kleines UserForm mit Textfeldern. Wenn ich mit der Maus drauf zeige würde ich gerne die Hintergrundfarbe oder die Schriftfarbe ändern so das man sieht hey da tut sich was. Wie halt bei so einem Explorerfenster. Kann man das in VBA auch machen? Wenn ja wie geht das?

VG
SüßerApfel

Betrifft: AW: VBA UserForm Font Farbe ändern
von: Daniel
Geschrieben am: 12.09.2020 19:04:05

Hi

Sowas könnte mit MouseMove realisiert werden.
Das Event spricht an, wenn man die Maus über dem Steuerelement bewegt.

Gruß Daniel

Betrifft: AW: VBA UserForm Font Farbe ändern
von: Daniel
Geschrieben am: 12.09.2020 19:04:09

Hi

Sowas könnte mit MouseMove realisiert werden.
Das Event spricht an, wenn man die Maus über dem Steuerelement bewegt.

Gruß Daniel

Betrifft: AW: VBA UserForm Font Farbe ändern
von: SüßerApfel
Geschrieben am: 12.09.2020 19:16:10

Ah danke das Steuerelement habe ich gefunden also man kann da auch den Mauszeiger verändern bzw. einstellen das dieser sich verändert wenn der in den Bereich kommt. Und wie kann ich dann dem sagen das die Farbe sich ändern soll Daniel?

Betrifft: AW: VBA UserForm Font Farbe ändern
von: Nepumuk
Geschrieben am: 12.09.2020 19:31:00

Hallo SüßerApfel,

eine Farbänderung machst du so:

https://www.herber.de/bbs/user/140206.xlsm

Von einer Cursoränderung würde ich abraten, die werden auf Userform-Controls schwarz und verschwommen angezeigt.

Gruß
Nepumuk

Betrifft: Frage falsch formuliert
von: SüßerApfel
Geschrieben am: 12.09.2020 21:07:51

Danke für eure Hilfe ich habe beides ausprobiert und es funktioniert, aber ich habe mir das ganze wohl falsch vorgestellt, daher habe ich eine Beispieldatei hochgeladen.

Ich möchte mir im Userform ein Menü mit 8 Menü-Punkten (in der Beispieldatei 3) basteln bei dem sich die Hintergrundfarbe, die Schriftfarbe und die Farbe des Symbol bzw Images beim drauf zeigen ändert. Wenn ich mit der Maus über ein Menü-Punkt fahre soll sich die Farbe verändern und sobald die Maus nicht mehr drauf zeigt soll der Ursprung wieder da sein. Wenn ich den Menü-Punkt anklick soll die farbliche Veränderung dauerhaft sein und zwar so lang bis ich einen anderen Menü Punkt anklicke.

Wie ich festgestellt habe kann ich ein MS Picogram nicht in ein Userform einbinden, deswegen musste ich zwei Images machen die je nach Situation ein-/ausgeblendet werden. Bis jetzt verändert sich alles dauerhaft wenn ich mit der Maus drüber fahre.

Im endeffekt will ich im Userform so ein Menü haben wie die Buttons auf dieser Forumseite.

https://www.herber.de/bbs/user/140207.xlsm

Könntet ihr mir dabei bitte helfen? Und noch eine Frage gibt es eigentlich eine elegantere Lösung als meine mit den Image + zwei Labels für einen Button? Ich weiß jetzt nicht wie ich es anders machen sollte.

Betrifft: AW: Frage falsch formuliert
von: Daniel
Geschrieben am: 12.09.2020 21:58:05

HI
das mit dem Rücksetzen ist schwierig, weil es kein Event gibt, das reagiert wenn du ein Steuerelement verlässt.

eine Möglichkeit wäre die, dass du zwischen den einzelnen Menüpunkten eine Lücke lässt, so dass sich die Maus immer auch über die Userformgrundfläche bewegt.
Im MouseMove der Userform setzt du dann die Farben der zuletzt geänderten Steuererlemente wieder in den Ursprungszustand zurück.
die zuletzt geänderten Steuerelemente kannst du dir ja in einer Modulweit gültigen Variable merken, welche du beim MouseMove über ein Steuerelement befüllst.

also im Prinzip so (PseudoCode)
Public CrtAlt as Control

Privat Sub MouseMove_Steuerelement1
    if Not crtAlt is Nothing then
        crtAlt.BackColor = Standardfarbe
        set crtAlt = Nothing
    end if
    if Steuerement1.BackColor = Standardfarbe then
        Steuerelement1.BackColor = Hervorhebungsfarbe
        set crtAlt = Steuerelement1
    end if
End Sub

Privat Sub MouseMove_Steuerelement2
    wie Steuerelement1 für Steuerelement2
End Sub 


Private Sub MouseMove_Userform
    if not crtAlt is Nothing then
        crtAlt.Backcolor = Standardfarbe
        set crtAlt = Nothing
    end if
End sub
Gruß Daniel

Betrifft: AW: Frage falsch formuliert
von: SüßerApfel
Geschrieben am: 13.09.2020 08:58:48

Morgen Daniel,

das mit der Lücke zwischen den Menüpunkten war eine gute Idee das funktioniert jetzt supi =). Aber wie mach ich das mit dem Clickevent das der Menüpunkt dann dauerhaft seine Änderungen behält wenn ich ihn anklicke?

Gruß
Süßerapfel

Betrifft: AW: Frage falsch formuliert
von: Daniel
Geschrieben am: 13.09.2020 09:53:31

Hi
wenn du den Button anklickst, sollte doch eigentlich sofort was passieren.
aber du kannst ja auch einfach im Klick-Event des Buttons die Variable crtAlt wieder auf Nothing setzen.
dann behält er seine Farbe.
Gruß Daniel

Betrifft: AW: VBA UserForm Font Farbe ändern
von: Hajo_Zi
Geschrieben am: 12.09.2020 19:33:12

Option Explicit
Dim StTextbox As String

Private Sub TextBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As  _
Single, ByVal Y As Single)
    If StTextbox <> "" Then
        Controls(StTextbox).BackColor = &H80000005
    End If
    TextBox1.BackColor = 255
    StTextbox = "Textbox1"
End Sub

Private Sub TextBox2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As  _
Single, ByVal Y As Single)
    If StTextbox <> "" Then
        Controls(StTextbox).BackColor = &H80000005
    End If
    TextBox2.BackColor = 255
    StTextbox = "Textbox2"
End Sub

GrußformelHomepage

Beiträge aus dem Excel-Forum zum Thema "VBA UserForm Font Farbe ändern"