Markierten Bereich in Excel merken und übertragen
Schritt-für-Schritt-Anleitung
Um den aktiv markierten Bereich in einer Variablen zu speichern und ihn in mehreren Tabellenblättern zu übertragen, kannst Du das folgende VBA-Skript verwenden. Dieser Code funktioniert in Excel und benötigt keine speziellen Add-Ins.
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu starten.
- Erstelle ein neues Modul, indem Du mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsx)“ klickst und „Einfügen“ > „Modul“ auswählst.
- Füge den folgenden Code in das Modul ein:
Sub Mko_S_Bereich_anwählen()
Application.ScreenUpdating = False
Dim strBereich As String
Dim strBSZeile As Long
Dim strBSSpalte As Long
strBereich = Selection.Address
strBSZeile = ActiveWindow.VisibleRange.Row
strBSSpalte = ActiveWindow.VisibleRange.Column
' Übertrage den markierten Bereich auf ein anderes Blatt
Application.Goto Worksheets("1R 1A").Range(strBereich), True
ActiveWindow.ScrollRow = strBSZeile
ActiveWindow.ScrollColumn = strBSSpalte
' Wiederhole die Schritte für weitere Blätter
' Hier die weiteren Blätter anpassen
Application.Goto Worksheets("1R 2A").Range(strBereich), True
ActiveWindow.ScrollRow = strBSZeile
ActiveWindow.ScrollColumn = strBSSpalte
' Füge die übrigen Blätter hinzu...
Application.ScreenUpdating = True
End Sub
- Schließe den VBA-Editor und gehe zurück zu Excel.
- Markiere den gewünschten Bereich in Deinem Arbeitsblatt.
- Starte das Makro über
ALT + F8
, wähle „Mko_S_Bereich_anwählen“ und klicke auf „Ausführen“.
Häufige Fehler und Lösungen
-
Fehler: Das Makro funktioniert nicht, weil die Adresse der selektierten Zellen zu lang ist.
- Lösung: Stelle sicher, dass die Adresse nicht länger als 256 Zeichen ist. Andernfalls kannst Du den markierten Bereich nicht erfolgreich übertragen.
-
Fehler: Der sichtbare Bereich wird nicht korrekt übertragen.
- Lösung: Überprüfe, ob du die Zeilenhöhe und Spaltenbreite der Blätter angeglichen hast. Diese müssen gleich sein, damit der
activewindow.visiblerange
identisch bleibt.
Alternative Methoden
Du kannst auch den sichtbaren Bereich direkt in der Zelle speichern, anstatt den markierten Bereich zu verwenden. Hier ist ein Beispiel, wie Du den sichtbaren Bereich ermitteln kannst:
Dim obersteZeile As Long
Dim ersteSpalte As Long
obersteZeile = ActiveWindow.VisibleRange.Row
ersteSpalte = ActiveWindow.VisibleRange.Column
Du kannst diesen Code verwenden, um den sichtbaren Bereich in anderen Blättern einzustellen, bevor Du den markierten Bereich überträgst.
Praktische Beispiele
Wenn Du beispielsweise die Zellen von M203:Z219
in mehreren Blättern markieren möchtest, verwende die oben genannten Skripte. Achte darauf, dass alle Blätter, die Du anpassen möchtest, im gleichen Format vorliegen, um eine konsistente Ansicht zu gewährleisten.
Tipps für Profis
- Nutze
Application.ScreenUpdating = False
, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren. Dies beschleunigt den Prozess und verhindert Flackern.
- Wenn Du den
activewindow.visiblerange
häufig verwendest, speichere die Werte in einer Variablen, um die Lesbarkeit Deines Codes zu verbessern.
FAQ: Häufige Fragen
1. Wie kann ich den sichtbaren Bereich in meinem VBA-Skript verwenden?
Du kannst den sichtbaren Bereich mit ActiveWindow.VisibleRange
ermitteln und die Zeilen- und Spaltennummern speichern, um sie später zu verwenden.
2. Was passiert, wenn ich einen Bereich markiere, der auf einem anderen Blatt nicht existiert?
In diesem Fall wird ein Laufzeitfehler auftreten. Du solltest sicherstellen, dass der markierte Bereich in jedem Blatt vorhanden ist, bevor Du das Makro ausführst.