Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Excel 2016 VBA Grundkurs

Resize

Testen Sie unsere 2019 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Passend zum Offset-Befehl verändern Sie mit Resize die Größe des Bereichs. Das ist hilfreich, um aus Datenbereichen die überflüssigen Überschriften auszusparen.

Transkript

Der "Offset"-Befehl hier ist nett, aber er ist nur die eine Hälfte der Wahrheit. Sie brauchen häufig einen zweiten Befehl, der wird "Resize" heißen. Und ich habe schon ein leeres Modul vorbereitet, weil das verschieben alleine nicht reicht. Gucken Sie in diesem Beispiel hier, das sind ja völlig beliebige Daten, wo typischerweise Überschriften und Inhalte sind. Und ich möchte jetzt entweder die Überschriftenzeile markieren, oder alles andere, oder sogar alles andere ohne diese, ich nenne sie mal seitliche Überschrift. Ich stelle den Cursor ausdrücklich außerhalb. Fangen wir mit der Überschrift an. Also ALT + F11, wieder in den VBA-Editor. Dann mache ich eine "Sub MarkiereTitel". Da ist diese erste Zeile. Ich arbeite auch hier mit Worksheet-Objekten, weil das effektiver ist. Also "wksDieses as Worksheet". Und dann kommt ein "Range", den nenne ich erstmal "Genutzt as Range". Sie haben recht, ich werde hier sehr viele Ranges einsetzen, einfach damit Sie es Schritt für Schritt verfolgen können. Im wirklichen Leben mache ich das kürzer und schreibe das auch schon mal in eine Zeile. Aber dann muss man auch genau wissen, was man macht. Also, dann gibt es den "RangeTitel as Range". Fängt an, dass ich das "wksDieses" zuweise, das ist einfach ActiveSheet, und dann kann ich nämlich davon "RangeGenutzt" gleich "wksDieses.UsedRange" nehmen. Hätte ich sonst zur Not schneller machen können, aber damit Sie sicher sehen: Es gibt diese Befehle. Und das kann ich ja erstmal "RangeGenutzt.Select" markieren lassen. Also einmal F5, und Sie sehen jetzt, den Bereich hat er gefunden. Den will ich aber gar nicht haben, ich will die Titelleiste sehen. Also kommt jetzt der Nächste, "Set RangeTitel" Und das ist das, was den "RangeGenutzt" ausmacht, und jetzt kommt der "Resize"-Befehl. Jetzt sage ich diesem, er soll die Anzahl der Zeilen, Rowsize, oder die Anzahl der Spalten, Columnsize, reduzieren. Und die weiß ich, die Anzahl der Zeilen soll exakt eins sein. Es sind beides optionale Argumente, können Sie also Klammer zu machen. Und wenn Sie nochmal gucken am Ende: Es wird ein Range-Objekt zurückgegeben. Das war's schon. Ich kann jetzt also "RangeTitel.Select" schreiben, und nach dem Speichern mit F5 gucken wir mal nach: Es ist wunderbar die Titelzeile markiert worden. Ich stelle den Cursor wieder woanders hin. Das möchte ich jetzt für den Rest machen. Davon kann ich ganz viel wieder recyceln. Also "Markiere", ich nenne das mal "OhneTitel". Und kann Ihnen schon versprechen, das wird viele Zeilen lang identisch sein. Ich bezeichne das mal als Rest, gerade nicht als Titel. Und hier entsprechend... Mit STRG + Leertaste kann ich das hier entsprechend ergänzen lassen - Aber mit "Resize" will ich nicht die eine Zeile haben, die oben steht, sondern die Übrigen. Ich muss also vorher ein "Offset" machen. Und wir können das hier eigentlich löschen. Aus dem genutzten Bereich will ich mit "Offset" um eine Zeile verschieben, damit die Titelzeile nicht mehr dabei ist, also RowOffset ist eins nach unten und wenn Sie es so explizit schreiben wollen, "0" Spalten nach rechts. Das sieht erstmal gut aus, Wenn ich das speichere und ausführe, dann sehen Sie allerdings: Es hat wunderbar geklappt, eine Zeile nach unten geschoben, aber deswegen nicht kleiner geworden. Deswegen gehört zu dem "Offset"-Befehl eigentlich ganz häufig auch der "Resize"-Befehl. Cursor wieder woanders hin. Nach dem "Offset" muss ich also sagen: Der Rest ist noch nicht wirklich gut. Der muss noch mit "Set RangeRest" gleich bisheriger "RangeRest.Resize" um diese eine Zeile gekürzt werden. Sie müssen jetzt also angeben, nicht um eine Zeile, sondern auf wie viele Zeilen gekürzt. Sie geben RowSize an. Jetzt müssen wir rauskriegen, wie viel Zeilen hat das Ding eigentlich? Ja, wir fragen einfach mal nach. RangeRest hat eine Rows - Achtung, Plural - Auflistung, die eine Count-Eigenschaft mitbringt. Das sind die Anzahl der Zeilen, und ich will eine weniger haben. Und Klammer zu. Das ist durchaus auch typisch, dass Sie ein Objekt nehmen, verändern und den gleichen Namen wieder zuweisen. Das fühlt sich besser an, einen anderen Range diesem zuweisen, nachdem er verändert wurde, aber auch das geht, dass Sie in einem Objekt - was ja auch nur ein Verweis auf diesen Bereich ist - Änderungen vornehmen, und das dem gleichen Objekt wieder zuweisen. Es ist keine Gleichheit, sondern es ist eine Arbeitsanweisung, dass dieses Objekt verkürzt wird und dem Namen wieder zugewiesen wird. Und jetzt mit F5, können wir wieder nachgucken, Jetzt ist tatsächlich alles außer der Titelleiste zugewiesen. Und das kann ich jetzt entsprechend links auch nochmal machen. Nur die Daten, also irgendwo hin klicken. Und das mache ich mal hier wieder als Kopie, weil da ganz viel gleich bleiben wird. Also markiere nur Daten, wenn denn überhaupt links Überschriften sind. Ich muss also das Offset in beide Richtungen verschieben. "1" und "1", eine Zeile, eine Spalte. Und ich muss auch hier dann die Größe in beiden Richtungen verändern. Also "RangeRest.Columns". auch deren Auflistung "Count" muss ich um eins verringern. Und Speichern und F5 und dann gucken wir mal nach. Das ist jetzt sozusagen der Innenbereich. Ohne Titel hier, ohne Titel auf der linken Seite. Und damit sehen Sie das Resize und Offset ganz oft zusammenarbeiten, und Sie müssen dann einfach nur gucken, wo schneiden Sie was ab, wo verschieben Sie was, und haben hier sozusagen alle drei Varianten.

Excel 2016 VBA Grundkurs

Lassen Sie sich systematisch in die Excel-Programmierung mit Visual Basic for Applications (VBA) einführen.

7 Std. 25 min (66 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Exklusiv für Abo-Kunden
Erscheinungsdatum:30.08.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!