Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1016to1020
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?

Screenupdating?
21.10.2008 11:20:39
KViertel
Halllo in die Runde,
Ich habe eine Verständnisproblem mit dem Befehl "Application.Sreenupdating = "
Ich habe eine Arbeitsmappe mit 10 Tabellen. Darin ist zB. eine Tabelle enthalten, die Definitionen bzw. Informationen über Zellzuweisungen enthält. Auf diesem Blatt, befinden sich mehrere Blöcke, die in Abhängigkeit von der Ausgangstabelle jeweils selectiert werden müssen, um die richtigen Zellen in der weiteren Bearbeitung durch eine VBA-Procedur ansprechen zu können. Dabei entsteht ein ziemliches Geflimmer auf dem Bildschirm.
Obwohl ich am Beginn der Procedur Application.Sreenupdating = False gesetzt habe, wird trozdem jede folgende Anweisung im Bildschirm angezeigt. zB. werden ausgeblendete Tabellen, die "visible = true" erhalten angezeigt. Oder wenn ich in diese Listendatei springen muß, um den entsprechenden Block zu selectieren, der dann über eine For each Schleife ausgewertet wird, ist jeder einzelne Schritt sichtbar.
Application.ScreenUpdating = False
var_def
ws_t.Visible = True
ws_e.Visible = True
ws_q.Visible = True
ws_d.Visible = True
ws_r.Visible = True
ws_dbadr.Activate
drow = ws_dbadr.[A65536].End(xlUp).Row
dcol = ws_dbadr.[A65536].End(xlUp).Column
ws_dbadr.Range(Cells(3, dcol), Cells(drow, dcol)).Select
t_z = Selection.Rows.Count
i = 1
For Each n In Selection
Ich suche also Informationen, wie sich ScreenUpdating richtig anwenden muß.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Screenupdating?
21.10.2008 11:40:20
Andi
Hi,
liege ich richtig mit der Vemutung, dass Du mit der Anweisung var_def eine andere Prodezur aufrufst? Wird in dieser evtl die Bildschirmaktualisierung wieder eingeschaltet?
Abgesehen davon kannst Du ohnehin auf das ganze Select verzichten.
Statt
ws_dbadr.Range(Cells(3, dcol), Cells(drow, dcol)).Select
For Each n In Selection
kannst Du auch einfach schreiben
For Each n In ws_dbadr.Range(Cells(3, dcol), Cells(drow, dcol))
Schönen Gruß,
Andi
AW: Screenupdating?
21.10.2008 11:52:00
KViertel
Hallo Andi,
danke für Deine Info.
Die Function, die aufgerufen wird, enthält nur Variablendefinitionen. Die Screenupdating-Funktion wird nicht berührt.
Ich habe meinen Code wir folgt geändert, erhalte dann aber bei t_z und For Each einen Laufzeitfehler 1004.
Application.ScreenUpdating = False
var_def
ws_t.Visible = True
ws_e.Visible = True
ws_q.Visible = True
ws_d.Visible = True
ws_r.Visible = True
'REM ws_dbadr.Activate
drow = ws_dbadr.[A65536].End(xlUp).Row
dcol = ws_dbadr.[A65536].End(xlUp).Column
'REM ws_dbadr.Range(Cells(3, dcol), Cells(drow, dcol)).Select
t_z = ws_dbadr.Range(Cells(3, dcol), Cells(drow, dcol)).Rows.Count
i = 1
For Each n In ws_dbadr.Range(Cells(3, dcol), Cells(drow, dcol))
MfG. Klaus
Anzeige
AW: Screenupdating?
21.10.2008 12:51:48
Rudi
Hallo,

With ws_dbadr
drow = .Range("A65536").End(xlUp).Row
dcol = .Range("A65536").End(xlUp).Column  '?
dcol = .Range("A1").End(xlToRight).Column   ' nicht so?
t_z = .Range(.Cells(3, dcol), .Cells(drow, dcol)).Rows.Count
i = 1
For Each n In .Range(.Cells(3, dcol), .Cells(drow, dcol))
'Code
Next
End With


Gruß
Rudi

AW: Screenupdating?
21.10.2008 17:12:00
KViertel
Hallo Rudi,
Bei dem Block den ich dort verwende, handelt es sich um einen des öfteren verwendeten Codeschnipsel, bei dem ich immer nur die Spaltenbezeichnung ändern muß. Das Einlesen der Variablen dcol geschieht deshalb an dieser Stelle, weil ich sie später im Code noch mehrfach brauche. Und da ich nur hier die Spaltenbezeichnung ändere, habe ich auch immer die richtige Spaltennr für cells.
Eine Frage zu dem "." vor Cells, wie ist da der Zusammenhang? Bedeutet es bei verwendung des with-Blocks ws_DBAdr.Range(.ws_DBAdr.cells .... ?
Danke für Deinen Hinweis.
Aber nochmal die Frage: Gibt es evtl. irgendwo eine Beschreibung der Screenupdating Funktion, die mehr aussagt, als die Hilfedatei.
MfG. Klaus
Anzeige
AW: Screenupdating?
21.10.2008 17:37:00
Rudi
Hallo,
ohne With-Block müsste das so aussehen:

drow = ws_dbadr.Range("A65536").End(xlUp).Row
dcol = ws_dbadr.Range("A65536").End(xlUp).Column  '?
dcol = ws_dbadr.Range("A1").End(xlToRight).Column   ' nicht so?
t_z = ws_dbadr.Range(ws_dbadr.Cells(3, dcol), ws_dbadr.Cells(drow, dcol)).Rows.Count
i = 1
For Each n In ws_dbadr.Range(ws_dbadr.Cells(3, dcol), ws_dbadr.Cells(drow, dcol))
'Code
Next


Du sparst dir also eine Menge Tipparbeit, es ist übersichtlicher und wird zudem schneller ausgeführt.
Gruß
Rudi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige