Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
372to376
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
372to376
372to376
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bildschirmaktualisierung

Bildschirmaktualisierung
30.01.2004 07:45:15
Christian
Hallo
Ich habe eine Applikation mit Excel XP entwickelt. Sie beinhaltet sehr viele Module/Makros. Damit der Benutzer den Makroablauf nicht sieht, steht jeweils zu Beginn eines Moduls der Befehl "Application.ScreenUpdating = False" und am Ende "Application.ScreenUpdating = True".
Jedoch nützt dies nichts!! Hat jemand eine Idee warum?
Vielen Dank.
Christian

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bildschirmaktualisierung
30.01.2004 08:29:48
Galenzo
Hallo Christian,
ohne Code-Beispiele muß ich mal die Glaskugel rausholen - und tippe mal darauf, daß du in deinen Makros viel "hin- und her-" selektierst ? Das solltest du natürlich vermeiden.
mfg
AW: Bildschirmaktualisierung
30.01.2004 08:56:08
Christian
Hallo Galenzo
Ja, aber ich muss andere Tabellenblätter auswählen um Werte einzutragen oder zu löschen!
mfg
AW: Bildschirmaktualisierung
30.01.2004 09:26:53
Galenzo
nööö - wieso??
Schreib' mal etwas Programm-Code, dann seh' ich mehr...
AW: Bildschirmaktualisierung
30.01.2004 10:04:37
Christian
Hallo Galenzo
Hier ein wenig Code:
Hauptprozedur:

Private Sub cmdAllesLöschen_Click()
Application.ScreenUpdating = False
ActiveWorkbook.Names("EinzelgewichtSendung").RefersToRange.Select
Select Case intSprache
Case 1
Title = "Löschen der Einträge"
msg = "Wollen Sie das Aufgabeverzeichnis vor dem Löschen ausdrucken?"
Case 2
Title = "Effacer les entrées"
msg = "Voulez-vous imprimer le bordereau de dépôt avant de l'effacer?"
Case 3
Title = "Cancellare registrazioni"
msg = "Desiderate stampare la distinta d'impostazione prima della cancellazione?"
Case Else
Title = "Löschen der Einträge"
msg = "Wollen Sie das Aufgabeverzeichnis vor dem Löschen ausdrucken?"
End Select
Reply = MsgBox(msg, vbYesNoCancel, Title)
If Reply = vbYes Then
cmdAufgabeverzeichnisD_Click
ElseIf Reply = vbCancel Then
Exit Sub
Else
intLöschung = 0
End If
If intLöschung = 0 Then
AllesLöschen
End If
Application.ScreenUpdating = True
End Sub

Untermodul "AllesLöschen":
Sub AllesLöschen()
Sheets("Sendung").Select
Sheets("Sendung").Unprotect (strSchutz)
ActiveWorkbook.Names("FormatR").RefersToRange.Select
ActiveCell.FormulaR1C1 = ""
ActiveWorkbook.Names("FormatN").RefersToRange.Select
ActiveCell.FormulaR1C1 = ""

Sheets("AVZ").Select
Sheets("AVZ").Unprotect (strSchutz)

ActiveWorkbook.Names("Barfrankatur").RefersToRange.Select
Selection.ClearContents
ActiveWorkbook.Names("FrankierungDritte").RefersToRange.Select
Selection.ClearContents
ActiveWorkbook.Names("Aufgabebestätigung").RefersToRange.Select
Selection.ClearContents

Sheets("AVZ").Protect (strSchutz)

Worksheets("Sendung").OLEObjects("cmbProgramm").Object.Value = ""

Sheets("Daten").Select
Sheets("Daten").Unprotect (strSchutz)
ActiveWorkbook.Names("WertzeichenJaNein").RefersToRange.Select
ActiveCell.FormulaR1C1 = "False"
ActiveWorkbook.Names("FrankierungJaNein").RefersToRange.Select
ActiveCell.FormulaR1C1 = "False"
Sheets("Daten").Protect (strSchutz)

Worksheets("Sendung").OLEObjects("chkWertzeichen").Enabled = False
Worksheets("Sendung").OLEObjects("chkBarWert").Enabled = False
Worksheets("Sendung").OLEObjects("chkPostkontoWert").Enabled = False

Sheets("Sendung").Unprotect (strSchutz)
ActiveWorkbook.Names("Frankierung").RefersToRange.Value = ""
ActiveWorkbook.Names("FrankierterGesamt").RefersToRange.Value = ""
ActiveWorkbook.Names("FrankAndereProdukte").RefersToRange.Value = ""

ActiveWorkbook.Names("AnzahlSendungen1").RefersToRange.Select
Sheets("Sendung").Select
ActiveWorkbook.Names("EinzelgewichtSendung").RefersToRange.Select
Sheets("Sendung").Protect (strSchutz)

End Sub

Anzeige
AW: Ohne Selektieren
30.01.2004 12:42:37
Galenzo
jep - daß hab' ich mir gedacht.
Ich denke, durch das Selektieren kommt es zu dem Problem.
Versuche mal, das Ganze OHNE Selektieren zu lösen.
Ich habe jetzt leider keine Zeit, deinen Code komplett zu überarbeiten, aber hier mal ein Beispiel, wie's geht:
Statt
Sheets("AVZ").Select
Sheets("AVZ").Unprotect (strSchutz)
ActiveWorkbook.Names("Barfrankatur").RefersToRange.Select
Selection.ClearContents
schreibst du:
Sheets("AVZ").Unprotect (strSchutz)
Sheets("AVZ").Range("Barfrankatur").ClearContents
Du sprichst also den Bereich "Barfrankatur" auf dem Blatt "AVZ" direkt an (un leerst ihn)
OHNE das er vorher erst ausgewählt wird.
Zum Löschen muß er ja nicht extra noch vorher noch ausgewählt werden. Das würde nur das Blatt umschalten und Flackern etc. erzeugen...
Und der Code läuft außerdem viel schneller.
Schau dir diese Vorgehensweise mal an und lern was draus :-)
Viel Erfolg dabei!
mfg
Anzeige
AW: Ohne Selektieren
02.02.2004 08:37:13
Christian
Hallo Galenzo
Vielen Dank für Deinen Tipp.
Habe nun einige Anpassungen vorgenommen. Jedoch erhalte ich bei folgender Zeile einen Fehler.
Sheets("Sendung").Range("unsortiertSendung" & intSendung).ClearContents
Der Fehler lautet Laufzeitfehler 1004 - "Kann Teil einer verbundenen Zelle nicht ändern"
Kannst Du mir bitte weiterhelfen?
Gruss
Christian
AW: Überschneidungen bei Bereichen
02.02.2004 14:05:43
Galenzo
ja da reicht wohl ein Zellverband ÜBER Bereichsgrenze hinaus???
Mal so als Beispiel:
Dein Bereich "Sendung" ist B2:F10.
Die Zellen F3 und G3 hast du mittels "Zellen verbinden" zu EINER zusammengefaßt.
Dann bekommst du die beschriebene Fehlermeldung.
WEil: Du kannst ja G3 nicht mit löschen, weil der Bereich nur bis Spalte F geht.
Aber G3 gehört auch mit zu F3 - durch den Verbund. Siehst du die Problematik?
Du solltest also deine Tabellen nochmal daraufhin abchecken.
Ich wünsch Dir viel Erfolg!
mfg
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige