Tipps & Tricks: Detail

Hier finden Sie zu dem ausgewählten Tipp oder Trick die detaillierten Angaben.

Wenn in den folgenden Erläuterungen Texte wie MsgBox formatiert sind, handelt es sich um konkret einzugebende Inhalte wie VBA-Code oder die Eingabe von Werten. Menüs wie Datei Speichern sind wie hier zu sehen formatiert. Schaltflächen oder Registerkarten auf Dialogen werden wie Menüs behandelt.

Alle Tipps sind nach bestem Wissen geprüft, aber selbstverständlich ohne Gewähr. Sollten Sie doch einen Fehler darin entdecken, würden wir uns freuen, wenn Sie uns per E-Mail Bescheid sagen.

Innerhalb einer Excel-VBA-Programmierung sollten Sie immer auf Bereichsnamen und nicht auf Zelladressen zugreifen, denn dann kann sich das Layout der Tabelle komplett ändern, ohne dass Ihr Makro davon betroffen ist. Dabei ist es hilfreich, sich den Umgang mit Bereichsnamen durch eigene Prozeduren etwas zu vereinfachen. Schreiben Sie dazu die folgende Prozedur:

Sub BereichsnamenFestlegen(rngHier As Range, strName As String)
Application.Names.Add strName, rngHier
End Sub

Sie haben vielleicht bemerkt, dass das Names-Objekt überraschenderweise dem Application-Objekt untergeordnet ist. Es gibt ebenso ActiveSheet als passendes Elternobjekt, aber dann muss der angegebene Name auch wirklich in genau diesem Blatt enthalten sein. mit der Application-Variante kann der Bereichsname irgendwo in der aktiven Arbeitsmappe sein (ja, Sie haben recht, es hätte dann richtigerweise eigentlich das ActiveWorkbook-Elternobjekt sein müssen...). Mit dieser Funktion können Sie nun die folgenden Prozeduren zum Testen nutzen:

Sub MarkierungAlsDruckbereich()
BereichsnamenFestlegen Selection, "Druckbereich"
End Sub
 
Sub MarkierungMerken()
BereichsnamenFestlegen Selection, "Merken"
End Sub

Der Bereichsname "Druckbereich" entspricht im deutschen Excel übrigens dem Aufruf des Befehls Datei Druckbereich Druckbereich festlegen und ist anschließend sehr schön durch die gestrichelte Umrahmung zu erkennen. Außerdem wird er nur als lokaler Bereichsname angelegt, gilt also nur innerhalb einer Tabelle, damit jede einen eigenen Druckbereich haben kann. Das entspricht aber nicht dem "normalen" Verhalten eines Bereichsnamens.