Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
640to644
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
640to644
640to644
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Mousemove zurücksetzen

Mousemove zurücksetzen
24.07.2005 13:42:54
Basti
Hallo,
das mit dem Mousemove funktioniert jetzt prima mit dem Code:

Private Sub CommandButton1_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If CommandButton1.BackColor = RGB(0, 255, 0) Then
CommandButton1.BackColor = RGB(255, 0, 0)
Sheets("Tabelle1").Activate
Dim A As Range
Set A = Range("b:b").Find("Dekubitus")
A.Offset(0, 2).Select
With UserForm4
TextBox1.Value = ActiveCell.Value
TextBox2.Value = ActiveCell.Offset(1, 0).Value
End With
End If
End Sub

allerdings habe ich jetzt das Problem das wenn ich einmal über den den Button gefahren bin der Commandbutton gesetzt ist!
ich möchte aber das wenn ich mit der Maus vom Commandbutton runtergehe dieser wieder zurückgesetzt wird so das er später erneut angewählt werden kann
Gruß Basti

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mousemove zurücksetzen
24.07.2005 13:50:41
Unbekannter
wenn du mit der maus auf deine userform gehst löst du das dann aus:

Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'so und hier musst du alles was gesetzt worden ist (farben usw) zurücksetzen.
End Sub

und dann ist der button freigegeben fürs nächste mal.
AW: Mousemove zurücksetzen
24.07.2005 13:59:15
Basti
Hallo Unbekannter,
Ja, da hast du vollkommen recht aber ich möchte die Farbe erst wieder zurücksetzen wenn ein anderer Commandbutton angewählt wird.
weißt du wie das geht
Gruß Basti
AW: Mousemove zurücksetzen
24.07.2005 13:56:34
Basti
Hmm,
also ich glaub ich weiß wo das Problem liegt, es liegt an den Farben.
Ich müsste also erreichen das wenn ich über einen commandbutton fahre sich zusätzlich alle anderen Commandbuttons wieder grün färben. Dann werden sie wohl auch wieder anzuwählen sein.
Weiß jemand wie das geht
Gruß Basti
Gruß Basti
Anzeige
AW: Mousemove zurücksetzen
24.07.2005 14:02:00
Unbekannter
Da bei dir der auslöser von den farben abhängig ist musst du sie immer dem entsprechend setzen und hat sich deine frage damit erledigt oder brauchst du noch was?
AW: Mousemove zurücksetzen
24.07.2005 14:10:10
Basti
Hmm, ja das ist mir schon klar aber ich möchte quasi das wenn ich auf eine Commandbutton gehe (ich habe mehrere) das sich dann alle anderen wieder grün färben, denn:
1, dann kann ich alle anderen nachher wieder anwählen, denn sie sind ja wieder grün
2, er ist solange rot wie ich nix anderes anwähle und damit weiß ich wo ich bin verstehst du
also brauch ich einen Code der in etwa so aussieht:
Dim shpshape As Controls
For Each shpshape In UserForm4.Controls
If shpshape.Type = msoControlButton And shpshape.BackColor = RGB(255, 0, 0) Then
shpshape.BackColor = RGB(0, 255, 0)
End If
Next shpshape
der funktioniert aber so nicht weil die Bezeichnungen nicht stimmen. Nur leider komme ich nicht dahinter wie die richtigen Bezeichnungen sind
Gruß Basti
Anzeige
AW: Mousemove zurücksetzen
24.07.2005 14:23:41
Unbekannter
sieht nicht toll aus aber ich kenne deine bezeichnungen nicht vielleicht kannst du übern index gehen oder so, aber du hast doch gesagt das du die buttons färben willst was haben dann shapes damit zu tun
beispiel:

Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
CommandButton1.BackColor = 12
CommandButton2.BackColor = 12
CommandButton3.BackColor = 12
CommandButton4.BackColor = 12
CommandButton5.BackColor = 12
End Sub

AW: Mousemove zurücksetzen
24.07.2005 14:32:24
Basti
hmm, so funktioniert es sicher
allerdings habe ich sehr sehr viele Commandbuttons und müsste dann diese Prozedur
CommandButton1.BackColor = rgb(0,255,0)
CommandButton2.BackColor = rgb(0,255,0)
CommandButton3.BackColor = rgb(0,255,0)
CommandButton4.BackColor = rgb(0,255,0)
CommandButton5.BackColor = rgb(0,255,0)
usw. usw.
für jeden einzelnen Button in den Code aller dieser Buttons reinschreiben, das ist ja wahnsinn denn ich bräuchte ja bei jedem Button einfach nur die Anweisung reinschreiben
das wenn ich die maus darüber bewege jeder andere Commandbutton dieser Userform der gerade rot gefärbt ist wieder grün wird, fertig (aber ich weiß nicht wie das geht)
Gruß Basti
Anzeige
AW: Mousemove zurücksetzen
24.07.2005 14:36:15
Unbekannter
stimmt aber wenn die alle unterschiedlich heißen und du nicht übern index kannst weiß ich nicht wie , es gibt bestimmt ein weg aber da musst du mal ramses oder hajo_zi oder die andern frage.
AW: Mousemove zurücksetzen
24.07.2005 15:10:02
Ramses
Hallo
Auch das UF hat ein MouseMove Ereignis

Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
CommandButton1.BackColor = 12
CommandButton2.BackColor = 12
CommandButton3.BackColor = 12
CommandButton4.BackColor = 12
CommandButton5.BackColor = 12
End Sub

Wobei mir beim lesen dieses Beitrages nach wie vor schleierhaft ist, wozu das gut sein soll.
Ein MouseMove Ereignis zum einlesen von Daten in eine Textbox erachte ich als problematisch.
Gruss Rainer
Anzeige
AW: Mousemove zurücksetzen
24.07.2005 15:20:13
Unbekannter
wenn er vom button runter geht sollen die wieder zutückgesetz werden und das erste was er nach dem button "berührt" ist die userform und das kann man ja ändern wie man will.
aber noch was ich arbeite gerade an sein problem und habe schon was könntest du dir das mal anschauen und sagen was da falsch ist es geht nicht.

Private Sub test_Click()
Dim i As Integer
For i = 0 To Me.Controls.Count - 1
If TypeOf Controls(i) Is commandbutton Then
Controls(i).BackColor = vbRed
End If
Next i
End Sub

Problem gelöst
24.07.2005 15:24:29
Unbekannter
Gut, der code geht doch habe nur vergessen den style auf graphich zu ändern (echt blöd) also basti damit werden alle buttons angesprochen egal was für ein name die haben,kommst du jetzt allein zurecht? (einfach in eine prozedur und dann immer mit call)
Anzeige
AW: Problem gelöst
24.07.2005 15:29:44
Ramses
Hallo
Damit werden dann aber auch "OK" und "Abbruch" oder sonstige Schaltflächen "Rot" die nicht verändert worden sind.
Gruss Rainer
AW: Problem gelöst
24.07.2005 15:33:51
Unbekannter
die muss er dann einzeln ändern, aber sonst gibt es keine andere lösung als manuel alle zu ändern und wenn er 50 buttons hat ist das dass kleinere übel oder?.
AW: Weiterspielen
24.07.2005 22:56:26
Basti
Heureka ich hab es dank der Beispieldatei von Nepumuk
das ganze sieht nun folgendermaßen aus

Private Sub CommandButton1_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If CommandButton1.BackColor = RGB(0, 255, 0) Then
Dim myControl As Control, inIndex As Integer
For Each myControl In Me.Controls
If TypeOf myControl Is MSForms.CommandButton And _
myControl.BackColor = RGB(255, 0, 0) Then
myControl.BackColor = RGB(0, 255, 0)
End If
Next
CommandButton1.BackColor = RGB(255, 0, 0)
Sheets("Tabelle1").Activate
Dim A As Range
Set A = Range("b:b").Find("Dekubitus")
A.Offset(0, 2).Select
With UserForm4
TextBox1.Value = ActiveCell.Value
TextBox2.Value = ActiveCell.Offset(1, 0).Value
End With
End If
End Sub

so funktioniert es wunderbar, es ist perfekt.
Und wie gesagt das Ereigniss wird nur einmal beim darüberfahren ausgelöst wegen der Farben (siehe Erklärung in anderer Antwort)
Danke für eure Hilfe
Gruß Basti
Anzeige
AW: Mousemove zurücksetzen
24.07.2005 15:39:25
Nepumuk
Hi Rainer,
da muss ich dir Recht geben. Bei einem "normal" großen Button löse ich das Ereignis beim drüberfahren 10 bis 20 mal aus.
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: Mousemove zurücksetzen
24.07.2005 15:44:37
Unbekannter
Ja,aber wenn sein rechner schnell genug ist was solls und wenn es ihm gefällt warum nicht ist mal was anderes als immer nur klicken.
AW: Mousemove zurücksetzen
24.07.2005 22:34:25
Basti
Also,
ich löse das Ereigniss nur einmal aus weil sich der angesprochene Button dann von grün auf rot verfärbt
das Ereigniss findet aber nur statt wenn der Button grün ist.
aber wenn ich einen anderen Button berühre (der jetzt mit der Berührung rot wird) muss sich der vorher angesprochene (der jetzt quasi auch noch rot ist) wieder grün färben.
Nebenbei gesagt, andere Buttons (die je nach Situation) nicht angewählt werden sollen erhalten keine Farbe und haben somit auch keine Funktion.
Das ganze System funktioniert eigentlich recht gut wenn ich doch nur die Geschichte da oben in den Griff bekäme.
Ich werd mich jetzt mal durch eure zahlreichen Antworten ackern, vielen Dank schon mal.
Gruß Basti
Anzeige
AW: Mousemove zurücksetzen
24.07.2005 22:39:46
Ramses
Hallo
"...ich löse das Ereigniss nur einmal..."
:-))))
Schreib mal in deinen Code
MsgBox "Kuckuck"
Aber fahr nur vorsichtig über den Rand deines Buttons :-)
Gruss Rainer
AW: Mousemove zurücksetzen
24.07.2005 22:59:25
Basti
Hallo Ramses,
nein ernsthaft wenn der die andere Farbe hat spricht er nicht an schau dir mal den Code an (s. andere Antwort)
Gruß Basti
AW: Mousemove zurücksetzen
25.07.2005 00:11:57
Ramses
Hallo
dies bezog sich auf "...ich löse das Ereignis nur einmal aus..."
Dass dein Code innerhalb der If-Schleife vielleicht nur einmal ausgeführt wird, mag sein, aber das Ereignis als solches wird wesentlich öfters ausgelöst.
Anyway,.. du hast ja deine Lösung :-)
Gruss Rainer
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige