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

Application.ScreenUpdating = False

Application.ScreenUpdating = False
Michael
Hallo,
bei mir "flackert" der Bildschirm wenn ich den Wert einer Zelle ändere trotz Verwendung der Funktion Application.ScreenUpdating = False. Die automatische Berechnung ist aktiviert und auch gewollt.
AW: Application.ScreenUpdating = False
16.11.2009 16:47:28
Tino
Hallo,
"wenn ich den Wert einer Zelle ändere"
ich vermute mal Du verwendest Eventmakros, eventuell ruft sich dies selbst wieder auf?
Vielleicht hilft es wenn Du
Application.EnableEvents = False
und am Ende wieder
Application.EnableEvents = True einbaust.
Sonst müsste man mal den Code sehen um zu sagen was man machen könnte.
Gruß Tino
AW: Application.ScreenUpdating = False
16.11.2009 16:49:56
Björn
Hallo,
erst mal:
Begrüßung
Problemschilderung (so, dass es jeder versteht, ohne dass man 10mal nachfragen muss)
Fragestellung (Bitte um Hilfe)
Verabschiedung
Dann kommen sich die Menschen (ja, das lesen MEnschen) gleich etwas besser vor.
zweitens:
Mit Deiner kurzen Bemerkung, was bei Dir nicht funktioniert, kann dir keiner helfen, da hier keiner hellsehen kann.
Also:
Zeig uns den Code, wie Du den Wert der Zelle änderst, und auch, was Du zwischen Application.ScreenUpdating = False und der Wertänderung machst.
Dann kann Dir vielleicht auch jemand helfen.
Gruß
Björn B.
Anzeige
AW: Application.ScreenUpdating = False
16.11.2009 17:08:47
Michael
Liebes Forum,
als erstes Sorry, Sorry, Sorry, für meinen klassischen Fehlstart.
Da das meine erste Anfrage war und ich den Wertegang und auch die Prozeduren hier noch nicht kenne, bitte ich das zu entschuldigen. Ich werde mich bessern.
Wie bzw. welche Information sollte ich sinnvoller Weise aufbereiten, damit geholfen werden kann ?
Vielleicht zum Grundverständnis. Meine Arbeitsmappe ist eine Vorlage die sowohl unter Excel 2003 als auch 2007 genutzt wird, Sie ist schreibgeschützt damit die Kollegen keinen Unfug machen können.
Beim Aufrufen der Datei wird der Schreibschutz entfernt, damit Pfadverweise
in der Datei auf ein spezielles Add-In gelöscht werden können, dann wird der Schreibschutz wieder gesetzt. Mein Code lautet wie folgt :
Option Explicit
Private Sub Workbook_Open()
' Bildschirm flimmern deaktivieren
Application.ScreenUpdating = False
'Anzeige Verknüpfungen aktualisieren verhindern
Application.DisplayAlerts = False
'Gelbe Farbe Hintergrund definieren
ActiveWorkbook.Colors(27) = RGB(255, 255, 153)
'Schreibschutz entfernen
Dim Blatt As Worksheet
For Each Blatt In ActiveWorkbook.Worksheets
Blatt.Unprotect ("migro")
Next Blatt
'Add-In-Verzeichnispfad löschen
Dim aLinks, i&, res$, xla$
' Hier den Namen des AddIns angeben ...
xla = "taxcel2003.xla"
aLinks = Me.LinkSources(xlExcelLinks)
If Not IsEmpty(aLinks) Then
For i = 1 To UBound(aLinks)
res = Right(aLinks(i), Len(aLinks(i)) - InStrRev(aLinks(i),
"\"))
If res = xla Then
Me.ChangeLink aLinks(i), xla, xlExcelLinks
Exit For
End If
Next i
End If
'Schreibschutz setzen
For Each Blatt In ActiveWorkbook.Worksheets
Blatt.Protect ("migro")
Next Blatt
'Fehlermeldungen wieder anzeigen
Application.DisplayAlerts = True
'Bildschirm aktuallisieren ein
Application.ScreenUpdating = True
End Sub

Gruß
Michael
Anzeige
AW: Application.ScreenUpdating = False
17.11.2009 07:40:01
Björn
Hallo Michael,
so ist das doch gleich viel freundlicher, danke.
Also, wo genau änderst Du denn jetzt den Wert einer Zelle?
Was soll Dein Code bewirken? Erklär bitte, was Du machst.
Und kleiner Tipp am Rande, das nächste mal Dein Passwort ganz weglassen oder eine "Fake"-Passwort nehmen, vielleicht war das ja auch schon eins.
So auf den ersten Blick sehe ich keinen Fehler, aber ich weiß nicht, was Dein Addin macht und ich kenne mich auch mit den Matrix-Befehlen nicht aus, sorry. Deshalb musst du es mir etwas besser erklären, vielleicht hat aber jemand anders schon was gefunden.
Gruß
Björn B.
Anzeige
AW: Application.ScreenUpdating = False
17.11.2009 11:38:52
Michael
Hallo Björn,
danke für die Antwort. Ich bin jetzt Seite für Seite meinen Code noch mal durchgegangen, habe einige kleine Schönheitsfehler beseitigt und es läuft jetzt zufrieden stellender, aber noch nicht optimal. Man kann zumindest jetzt wieder damit arbeiten.
Das Problem wird sein, dass jede Zelländerung auf einem Blatt Neuberechnungen auf anderen Blättern bewirken, deren Ergebnis zum Teil auf dem aktuell bearbeiteten Blatt angezeigt wird bzw. wiederum für die Neuberechnung anderer Zellen dient. Ich habe evtl. einfach zu viele Formeln in meiner Mappe ?
Komisch ist nur, dass wird mir erst jetzt, nachdem ich Windows 7 installiert habe, so richtig bewusst. Ich habe das auch auf anderen Rechnern getestet mit XP SP3, dort tritt es nicht so sehr auf, das Flimmern während der Neuberechnung. I don't no
Ich würde gern die Datei mal jemanden zum testen und überprüfen geben, um noch ein paar Tips zur Optimierung zu bekommen. Außerdem würde die umständliche Fehlerbeschreiberei wegfallen.
Allerdings ist mein Chef da sehr eigen, von wegen geistigem Eigentum etc.
Gruß Michl
Anzeige
AW: Application.ScreenUpdating = False
17.11.2009 18:44:32
Tino
Hallo,
sollte es daran liegen, stell die Berechnung mal auf manuell ein.
Dim iCalc As Integer
'aktuellen zustand merken
iCalc = Application.Calculation
'Berechnung auf manuell stellen
Application.Calculation = xlCalculationManual
'dein jetziger Code
'Berechnung zurückstellen
Application.Calculation = iCalc
Gruß Tino
AW: Application.ScreenUpdating = False
18.11.2009 12:36:16
Michael
Hallo Tino,
das hat mich leider auch nicht weiter gebracht.
Ich habe jetzt folgenden Code in "diese Arbeitsmappe" eingebaut :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.ScreenUpdating = False
Application.ScreenUpdating = True
End Sub
Damit habe ich das Flimmern zumindest sehr stark reduziert. Obwohl mich auch das noch nicht befriedigt.
Gruß
Michael
Anzeige
hast Du auch das gesamtpacket geschnürt?
18.11.2009 12:56:46
Tino
Hallo,
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim iCalc As Integer
With Application
iCalc = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
.EnableEvents = False
'Dein Code
.ScreenUpdating = True
.EnableEvents = True
.Calculation = iCalc
End With
End Sub
Gruß Tino
AW: Application.ScreenUpdating = False
18.11.2009 13:15:32
Michael
Hi Tino,
was meinst du mit Gesamtpaket ?
Gruß
michael
wie im Beispiel gezeigt oT.
18.11.2009 14:26:24
Tino
AW: Application.ScreenUpdating = False
18.11.2009 14:54:59
Michael
Hi Tino,
ich verstehe es trotzdem nicht, ich bin doch ein "absoluter Blindflieger" in Sachen VBA.
Helf mir bitte mal auf die Spünge.
Danke Michael
Anzeige
na so...
18.11.2009 16:31:22
Tino
Hallo,
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim iCalc As Integer
With Application
iCalc = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
.EnableEvents = False
    '**********************************
'hier Deinen Code einfügen

.ScreenUpdating = True
.EnableEvents = True
.Calculation = iCalc
End With
End Sub
Gruß Tino

127 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige