Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1168to1172
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

ScreenUpDating: Funktioniert nicht richtig

ScreenUpDating: Funktioniert nicht richtig
Holger
Hallo,
ich verwende Application.Screenupdating, um das Bildschirmflackern zu unterdrücken.
Leider funktioniert es nicht richtig. Trotz keinerlei Verwendung von Select oder Activate,
flackert der Bildschirm. Am Anfang des Makros setze ich es auf False, am Ende auf True. Dies mache
ich in jedem Makro, das ich benutze. Zusätzlich verwende ich Applicatio.EnableEvents = False.
Das Makro ist zu lang, als dass es ernsthaft hier gepostet werde könnte, aber wie gesagt kein Select, kein Activate. An was kann es noch liegen? Application.Visible nöchte ich nicht verwenden, da es den User verwirren kann und im Error Fall die Anwendung ganz weg ist.
Hat jemand eine Idee?
so: Application.ScreenUpdating = False 'oder True
04.08.2010 08:34:40
JOWE
?
04.08.2010 08:40:11
Holger
Hallo und Guten Morgen,
Danke für dei Posting, aber wo ist die Antwort?
Wie man es auf False oder True setzt weiß ich doch?
AW: hattest Du im Posting aber nicht geschrieben
04.08.2010 08:42:48
JOWE
AW: hattest Du im Posting aber nicht geschrieben
04.08.2010 08:45:00
Holger
Guckst du hier, aber egal. Fällt Dir sonst nichts zu dem Problem ein?
"...Am Anfang des Makros setze ich es auf False, am Ende auf True. Dies mache
ich in jedem Makro, das ich benutze. Zusätzlich verwende ich Applicatio.EnableEvents = False..."
AW: hattest Du im Posting aber nicht geschrieben
04.08.2010 08:47:24
JOWE
ja, sorry!!
kannst Du die Datei hochladen?
AW: hattest Du im Posting aber nicht geschrieben
04.08.2010 08:57:20
Holger
Ich habe gerade unter meinem Beitrag einen kleinen Beispielcode gepostet.
Ich verstehe wirklich nicht, was es da zu flackern gibt.
Aber sieh selbst.
Anzeige
Hier ein Beispielcode, der flackert
04.08.2010 08:52:58
Holger
Hallo,
hier doch ein kleiner Beispielcode, der flackert:
Sub CellsSetDate()
Dim c As Range
Dim strDate As String
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
strDate = CDate(Format(Now, "DD.MM.YYYY hh:mm"))
For Each c In Selection
If c.EntireRow.Hidden = False Then
c.NumberFormat = "dd/mm/yyyy hh:mm;@"
c.Value = strDate
End If
Next c
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
End Sub

AW: Hier ein Beispielcode, der flackert
04.08.2010 09:03:05
JOWE
Holger, hallo nochmal
hab den Code gerade unter XL2003 und XL2007 getestet.
Bei mir flackert da nix!
Gruß
Jochen
Anzeige
AW: Hier ein Beispielcode, der flackert
04.08.2010 09:30:44
Holger
Komisch, ich verstehe das dann nicht.
bei mir flackert nichts (Excel 2003 und 2010) owT
04.08.2010 09:03:45
JogyB
.
Hier ein alternativer Code
04.08.2010 09:49:20
Jürgen
Hallo Holger,
und wie wäre es mit etwas optimiertem Code - das beigefügte Beispiel läuft bei mir so schnell (auch bei komplett markierter Spalte), dass kein Unterschied sichtbar wird, wenn man die Bildschirmaktualisierung nicht ausschaltet. Ach ja, auch bei mir ist mit Deinem Code kein Flackern zu sehen - das mag aber auch an meiner kleinen Testdatei liegen.
Gruß, Jürgen
Sub CellsSetDate()
Dim Datum As Date
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Datum = Now()
With Selection.Cells.SpecialCells(xlCellTypeVisible)
.NumberFormat = "dd/mm/yyyy hh:mm;@"
.Value = Datum
End With
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
End Sub

Anzeige
Flackert auch!
04.08.2010 09:54:33
Holger
Hallo,
Danke fuer deinen Code, ich habe ihn übernommen, allerdings flackert das genauso.
Vielleicht liegt es daran, weil das Makro aus einem Ribbon aufgerufen wird oder
weil in der Tabelle auch ein Bild enthalten ist? Mehr fällt mir nicht mehr ein.
Habs jetzt auch getestet, ohne Probl.
04.08.2010 10:39:23
Matthias
Hallo
Auch bei mir kein Flackern
Getestet mit XL2000 und XL2007
Übrigens wird ScreenUpdating am Ende der Prozedur automatisch auf True gesetzt.
Gruß Matthias
Da würde ich mich aber nicht drauf verlassen...
04.08.2010 11:06:14
Tino
Hallo,
Übrigens wird ScreenUpdating am Ende der Prozedur automatisch auf True gesetzt.
ich hatte es schon oft, dass ich in einer Datei nicht mehr navigieren konnte weil z. Bsp. ein unfertiger Code wegen eines Fehlers vorzeitig abgebrochen wurde.
Dann musste ich im Direktfenster erst wieder application.screenupdating = True eingeben
damit die Datei wieder auftaut.
Gruß Tino
Anzeige
im Prinzip geb ich Dir schon Recht ...
04.08.2010 11:23:44
Matthias
Hallo Tino
... aber wenn z. Bsp. ein unfertiger Code wegen eines Fehlers vorzeitig abgebrochen wird ist das ja nicht das Ende der Prozedur sondern ein Abbruch durch einen Fehler. Ich meinte auch ein "sauberes Durchlaufen" aller CodeZeilen
Eigentlich sollte deshalb auch immer eine Fehlerbehandlung mitgegeben werden, um Solches zu vermeiden.
Übrigens wenn Du im Code Screenupdating auf True setzt und es entsteht irgenwo ein Fehler bevor VBA diese Zeile erreicht hat,
mußt Du es auch im Direktfenster wieder einschalten - oder versteh ich da was falsch ?
aber wie im Betreff geschrieben, geb ich Dir im Prinzip ja Recht ;o)
Gruß Matthias
Anzeige
Also ich würde auf jedem Fall auf True stellen.
04.08.2010 12:09:15
Tino
Hallo,
war nur ein Beispiel, habe auch schon vergessen dies wieder auf True zu setzen,
oder an einer anderen stellen den Code beendet, gleiche Probleme.
Also ich würde auf jedem Fall, wenn ich dies auf False setze auch irgendwo wieder auf True stellen.
Wenn Screenupdating auf True ist, kann ich so nicht sagen ob dies auch einen Effekt hat,
solch einen Code hatte ich noch nicht.
Gruß Tino
nur einmal am Anfang und am Ende
04.08.2010 09:35:56
Tino
Hallo,
Du schreibst
"Dies mache ich in jedem Makro, das ich benutze."
Du solltest es nur einmal während Deine Makros laufen am Anfang auf False und am Ende auf True setzen.
Gruß Tino
Anzeige
Sind irgendwelche AddIns aktiv ?
04.08.2010 10:57:12
NoNet
Hallo Holger,
möglicherweise liegt das Flackern nicht an Deinem Code, sondern an einem aktiven AddIn im Hintergrund, das auf irgendwelche Ereignisse reagiert !?!?!
Kannst Du sicherstellen, dass keine AdDIns geladen sind ?
Zur Not kannst Du das auch per VBA prüfen :
Sub AktiveAddInsAuflisten()
'04.08.2010, NoNet - www.excelei.de (z.Zt. down !)
Dim objAddIn, strAddIns As String, strCOMAddIns As String
Dim intAddIns As Integer, intCOMAddIns As Integer
For Each objAddIn In Application.AddIns
If objAddIn.Installed Then
intAddIns = intAddIns + 1
strAddIns = strAddIns & vbLf & Space(5) & objAddIn.Name
End If
Next
For Each objAddIn In Application.COMAddIns
If objAddIn.Connect Then
intCOMAddIns = intCOMAddIns + 1
strCOMAddIns = strCOMAddIns & vbLf & Space(5) & objAddIn.Description
End If
Next
MsgBox "Aktivierte AddIns : " & vbLf & vbLf & _
"AddIns : " & intAddIns & "  von insgesamt " & Application.AddIns.Count & _
strAddIns & vbLf & vbLf & _
"COM-AddIns : " & intCOMAddIns & "  von insgesamt " & _
Application.COMAddIns.Count & strCOMAddIns
End Sub
Gruß, NoNet
Anzeige
AW: Sind irgendwelche AddIns aktiv ?
04.08.2010 11:23:05
Holger
Hallo NoNet,
ja, ich habe standardmäßig einige Add-Ins installiert, aber die sollten eigentlich den Code nicht beinflussen!?
Ansonsten habe ich ein Bild noch enthalten und das Makro wird gestartet aus einem Ribbon.
AW: Sind irgendwelche AddIns aktiv ?
04.08.2010 18:44:55
Nepumuk
Hallo Holger,
wenn du in Unterroutinen Screenupdating auf True setzt, dann ist die natürlich auch in deiner Hauptroutine so lange True, bis sie von irgendeiner Routine wieder auf False gesetz wird.
Selbst wenn du nach dem Aufruf einer Unterroutine aus deiner Hauptrotine Screenupdating wieder auf False setzt wird der Bildschirm kurz mal zucken.
Gruß
Nepumuk
Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige