Anzeige
Archiv - Navigation
884to888
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
884to888
884to888
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ScreenUpdating / MouseMove

ScreenUpdating / MouseMove
06.07.2007 12:01:00
Peter

Hallo Leute,
ich habe ein Diagrammblatt bei dem ich beim drüberherfahren mit der Maus an bestimmten Stellen die Axenskalierung automatisch ändere:

Private Sub Chart_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y  _
As Long)
If x > 600 And x 


Wenn ich jetzt mit der Maus auf die beschriebenen Stellen gehe klappt das auch - nur der Bildschirm flackert, weil das Makro bei jeder Mausänderung neu ausgeführt wird. Wenn ich versuche per


Private Sub Chart_Activate()
Application.ScreenUpdating = False
End Sub


zu setzen ändert sich nix...
Wie bekomme ich dieses Flackern weg?
Bin für jede Hilfe dankbar
Peter

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

Betreff
Datum
Anwender
Anzeige
AW: ScreenUpdating / MouseMove
06.07.2007 12:08:00
Hajo_Zi
Hallo Peter,
die Eigenschaft muss wieder auf true gestelt werden. Warum schreibst Du es nicht in den ersten Code?

AW: ScreenUpdating / MouseMove
06.07.2007 12:15:00
Peter
Hallo Hajo,
ich setz natürlich beim verlassen des Diagrammblattes

Private Sub Chart_Deactivate()
Application.ScreenUpdating = True
End Sub


- ist doch klar.
Ich hab es auch versucht direkt am Anfang und Ende des Makros auf false / true zu setzen. Es flimmert immer noch. Aber danke für die schnelle Antwort.
Sonst noch eine Idee?
Gruß
Markus

Anzeige
AW: ScreenUpdating / MouseMove
06.07.2007 12:38:05
Ingo
Kann es sein, dass bei jedem Wert von x (601, 602...699) die Aktion ausgeführt wird ?
Dann würde evtl. eine Überprüfung helfen, ob der Bereich bereits aktualisiert wurde.
Dim Erledigt As Boolean

Private Sub Chart_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y  _
_
As Long)
If x > 600 And x 


So in der Art ...nicht getestet.
Ingo

AW: ScreenUpdating / MouseMove
06.07.2007 12:44:00
Peter
Haai,
Danke für den Tipp - ich habs auspriobiert - keine Änderung - das Makro wird (natürlich) nach wie vor bei jeder Mausänderung aufgerufen und dadurch entsteht anscheinend das Flackern... Was ind dem Makro steht ist wahrscheinlich egal, deswegen ist das mit dem ScreenUpdating schon eine gute Sache - wenns damit gehen würde...
Gruß und Dank
Peter

Anzeige
AW: ScreenUpdating / MouseMove
06.07.2007 13:42:00
Peter
Hallo,
na ja, wenn ich die Maus im linken Bereich bewege (nach Aktivierung des Diagrammblattes) flackert es nach wie vor....
Wenn ich die Maus über die Y-Achse schiebe ändert sich die Skalierung und es hört auf zu flackern - aber ich hätte natürlich gern, das, wenn ich die Maus wieder in den linken Bereich schiebe, die Skalierung wieder zurückändert (auf 250000).
Noch ein Tipp?
Peter

AW: ScreenUpdating / MouseMove
06.07.2007 12:23:54
Peter
sorry,
Frage ist noch offen
Peter

AW: ScreenUpdating / MouseMove
06.07.2007 12:40:15
Hajo_Zi
Hallo Peter,
mal nur als kleiner Hinweis, Du hast die Datei schon erstellt mit dem gesamten Code, warum sollte ein Antworter das erst nachbauen zum testen. Du ´hast die Zeit doch schon investiert. Ein Nachbau sieht meist anders aus als das Original. Vieleicht sollte auch ein Hinweis in die Datei falls ein Wert verändert werden muss?
Gruß Hajo

Anzeige
AW: ScreenUpdating / MouseMove
06.07.2007 13:00:00
Peter
Hallo,
ich hab die Datei bis aufs nötigste verkleinert und hochgeladen, siehe
https://www.herber.de/bbs/user/43888.xls
Wenn man mit der Maus im Diagramm über die Y-Achse (rechts) geht ändert sich halt die Skalierung - und es flackert und flackert....
Gruß
Markus

AW: ScreenUpdating / MouseMove
06.07.2007 13:14:00
Hajo_Zi
Hallo Peter,
bei mir verändert sich nur das Diagramm. Das sich dabei das Bild verändert finde ich normal. Von Links klappt es jedesmal von rechts selten. Das könnte aber auch mit meiner Version 2007 zusammenhängen.
Gruß Hajo

Anzeige
AW: ScreenUpdating / MouseMove
06.07.2007 13:19:00
Peter
Hallo,
ja, aber wenn ich die Maus bewege flackert das Diagramm und wenn ich die Maus doller bewege flimmert
es auch dementsprechend öfter - tritt dieser Effekt auch bei Dir auf - oder liegt es an ganz was anderes (Excel-Version, Hauptspeicher, Prozessor,...)?
Gruß und Dank
Peter

AW: ScreenUpdating / MouseMove
06.07.2007 13:25:40
Hajo_Zi
Hallo Peter,
jetzt ist das Problem klar. Es wurde Dir doch schon vorgeschlagen den Zustand zu prüfen?
Ich habe es jetzt mal so umgestzt.

Option Explicit
Dim BoZustand As Boolean
Private Sub Chart_Activate()
Application.ScreenUpdating = False
End Sub
Private Sub Chart_Deactivate()
Application.ScreenUpdating = True
BoZustand = False
End Sub
Private Sub Chart_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y  _
As Long)
'    Application.ScreenUpdating = False
If BoZustand Then Exit Sub
If x > 600 And x 


Falls das die Lösung ist, zeigt es sich doch wieder, was man alles mit einer Beispieldatei erreichen kann.
Gruß Hajo

Anzeige
AW: ScreenUpdating / MouseMove
06.07.2007 13:43:00
Peter
Hallo,
na ja, wenn ich die Maus im linken Bereich bewege (nach Aktivierung des Diagrammblattes) flackert es nach wie vor....
Wenn ich die Maus über die Y-Achse schiebe ändert sich die Skalierung und es hört auf zu flackern - aber ich hätte natürlich gern, das, wenn ich die Maus wieder in den linken Bereich schiebe, die Skalierung wieder zurückändert (auf 250000).
Noch ein Tipp?
Peter

AW: ScreenUpdating / MouseMove
06.07.2007 14:47:00
Ingo
bei mir flackert's nicht...
Option Explicit

Private Sub Chart_Activate()
'Application.ScreenUpdating = False
End Sub



Private Sub Chart_Deactivate()
'Application.ScreenUpdating = True
End Sub



Private Sub Chart_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y  _
_
As Long)
If x > 600 And x  250000 Then
Sheets("Diagramm1").Axes(xlValue).MinimumScale = 250000
End If
Else
If Sheets("Diagramm1").Axes(xlValue).MinimumScale  0 Then
Sheets("Diagramm1").Axes(xlValue).MinimumScale = 0
End If
End If
End Sub


Anzeige
AW: ScreenUpdating / MouseMove
06.07.2007 14:51:00
Peter
SUUUUPER
das ist es - es funktioniert. Also kommt das Flackern nicht daher, das das Makro ansich durchlaufen wird, sondern weil er jedesmal die Axenskalierung angepasst hat. Duch Deine zusätzliche Abfrage entfällt die Anpassung!!!
Tausen Dank
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige