Bei VBA Ausführung Anzeige einfrieren
wennerfaellt
Hallo zusammen, hallo besonders Daniel,
in einem anderen Thread hast Du, Daniel, mir geantwortet:
Hi
danke für die persönliche Rückmeldung.
Den Danke-Button finde ich auch etwas unpersönlich, zumal ich auch gar nicht mitbekomme, wenn er gedrückt wird.
die direkte Rückmeldung ist da einfach besser.
es gibt die Möglichkeit, während des Makrolaufs den Bildschirm einzufrieren, mit dem Befehl:
Application.ScreenUpdating = False
danach werden keine Änderungen mehr an der Bildschirmanzeige vorgenommen, bis entweder das Makro zu ende ist oder man die Eigenschaft wieder auf True setzt.
Besser ist aber, so zu programmieren dass sich am Bildschirm nichts ändert.
Du kannst auf einem Tabellenblatt arbeiten, das nicht sichtbar ist, wenn du vollständig referenzierst, also aus
Sheets("Tabelle1").Select
Range("A1").Select
Selection.Value = "Hallo Welt"
wird
Sheets("Tabelle1").Range("A1").Value = "Hallo Welt"
dann kann das Makro in der ganzen Mappe arbeiten, während immer das selbe Sheet angezeigt wird.
Ein Wechsel des Sheets findet dann nur noch statt, wenn man Sheets hinzufügt (neu oder kopie), weil dann immer das neu erstellte Sheet aktiv ist.
Man muss mit der vollständigen Referenzierung nur konsequent sein und beachten, dass jedes Range und auch jedes Cells auf das aktive Tabellenblatt referenziert.
Gerne vergessen wird das bei Range(Cells(), Cells()), hier muss das Tabellenblatt auch vor den beiden Cells in der Range stehen: Sheets(x).Range(Sheets(x).Cells(), Sheets(x).Cells())
Gruß Daniel
Beim Versuch Dieses umzusetzen, bin ich hier gescheitert.
Ich habe vorher im Blatt "W331" 6 Zellen verbunden:
Aus:
Sortierer.Offset(0, 1).Range("A1:A6").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
Selection.Merge
Selection.Font.Bold = True
Selection.Font.Italic = False
Selection.Font.Underline = xlUnderlineStyleNone
Jetzt habe ich aus dem funktionierendem:
Sheets("Auswahl").Select
Aktuelle.Select
ActiveCell.Offset(0, 3).Range("A1").Select
Selection.Copy
Sheets("W331").Select
ActiveSheet.Paste
folgendes gemacht:
Sheets("Auswahl").Aktuelle.ActiveCell.Offset(0, 3).Range("A1").Copy
ActiveSheet.Paste
Funktioniert aber nicht.
Was ist falsch?
"Aktuelle" ist eine Variable.