Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1780to1784
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

VBA UserForm Font Farbe ändern

VBA UserForm Font Farbe ändern
12.09.2020 19:33:12
Hajo_Zi

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
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
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
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
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

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

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
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

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

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


9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA UserForm Font Farbe ändern
12.09.2020 19:33:12
Hajo_Zi
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
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
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
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

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

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
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

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

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


Anzeige
AW: VBA UserForm Font Farbe ändern
12.09.2020 19:33:12
Hajo_Zi
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
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
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

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

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
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

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

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


Anzeige
AW: VBA UserForm Font Farbe ändern
12.09.2020 19:33:12
Hajo_Zi
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
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

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

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
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

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

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


Anzeige
AW: VBA UserForm Font Farbe ändern
12.09.2020 19:33:12
Hajo_Zi
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

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

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
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

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

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


Anzeige
Frage falsch formuliert
12.09.2020 19:33:12
Hajo_Zi
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

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
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

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

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


Anzeige
AW: Frage falsch formuliert
12.09.2020 19:33:12
Hajo_Zi
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
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

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

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


Anzeige
AW: Frage falsch formuliert
12.09.2020 19:33:12
Hajo_Zi
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

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

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


Anzeige
AW: Frage falsch formuliert
12.09.2020 19:33:12
Hajo_Zi
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

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


Anzeige
AW: VBA UserForm Font Farbe ändern
12.09.2020 19:33:12
Hajo_Zi

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


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige