Ich: „Es geht nicht darum, wie häufig du fällst, sondern wie häufig du wieder aufstehst.“ Polizist: „So funktionieren aber Alkoholtests nicht.“
Seltsam. Wenn ich VBA programmiere, verwende ich NIE die Befehle Activate oder Select. Mit zwei Ausnahmen: ich programmiere Spunganweisungen: „wechsle für den Anwender auf ein bestimmtes Blatt oder auf eine bestimmte Zelle“. Oder: am Ende des Programms soll der Cursor auf einem bestimmten Blatt und/oder auf einer bestimmten Zelle sitzen. Ich setze Verweise auf Zellen:
Sub Kopieren_und_Fertig()
Dim xlZelle As Range
Dim i As IntegerSet
Set xlZelle = ActiveSheet.Range("C2")
For i = 1 To 50
xlZelle.Copy Destination:=xlZelle.Offset(i, 0)
Next
MsgBox "fertig"
Ich starte das Makro von Excel aus:
Was passiert? man siehst nichts:
Auch wenn der Verweis auf ein anderes Tabellenblatt gesetzt wird:
Set xlZelle = ThisWorkbook.Worksheets(2).Range(„C2“)
Für den Befehl Inhalte einfügen sind zwei Zeilen Code nötig:
With xlZelle.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="m,w,d"
End With
For i = 1 To 50
xlZelle.Copy
xlZelle.Offset(i, 0).PasteSpecial Paste:=xlPasteValidation
Application.CutCopyMode = False
Next i
MsgBox "fertig"
Was geschieht hier:
Der Cursor wandert über den Bildschirm.
Ein Zucken ist auch am Bildschirm zu sehen, wenn die Inhalte auf einem anderen Tabellenblatt eingefügt werden:
Set xlZelle = ThisWorkbook.Worksheets(2).Range(„C2“)
Was tun? Klar: Die Bildschirmaktualisierung ausschalten. Dann funktioniert es! nichts zuckt; nichts zeigt sich …
Application.ScreenUpdating = False