Excel 2013 VBA für Profis

Adressenbereich finden

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Aus dem Bereich, der in der Tabelle Daten enthält, muss der Code nun nur den von Adressen benutzten Teilbereich ermitteln. Das gelingt recht einfach anhand der markierten Titelzeile.

Transkript

Im Moment besteht das Problem darin, dass ich den UsedRange hier markieren kann und auch per Programmierung finden, aber tatsächlich ja nur hier, ab Zeile 4 den Adressenbereich sehen will. Es wird also so laufen, dass ich diesen Bereich, den ich jetzt habe, um 4 Zeilen verschiebe. Dann ist er aber noch zu groß. Dann liegt er hier. Und dann muss ich ihn um diese 4 Zeilen wieder verkürzen. Es sind natürlich nur 3, um 3 auf die Zeile 4. Also der erste Schritt wird ein sogenannter Offset sein, den ganzen Bereich verschieben, und das zweite ein Resize, diesen zu verkürzen. Mit Alt+F11 gehen wir jetzt hier zu rngAdressen. Dazu muss ich erstmal die Zeile rauskriegen, in der ich mich befinde. Also am besten eine neue Variable: Dim lngTitelZeile As Long. Und das kann ich hier herausbekommen: lngTitelZeile =, von dem Bereichsnamen, der auch Titelzeile heißt, dessen erste Zeilenzahl. Der ist nur einzeilig. Da verlasse ich mich jetzt drauf. Einen Bereichsnamen kriegen Sie ja mit Application.Names, Achtung, dem Plural. Dann müssen Sie jetzt wissen, wie er heißt. Das habe ich mir eben schnell gemerkt, "Titelzeile". Und dann haben Sie jetzt nur den Zeiger auf dem Bereichsnamen. Das ist zu wenig. Sie wollen nämlich den Bereich haben. Dafür braucht man immer einen RefersToRange, vergesse ich selber auch immer mal wieder gern. Und von dem wollen Sie wissen, in welche Row, in welcher Zeile er sich befindet. Achtung, Row ist die Zahl der ersten Zeile. Rows ist die Auflistung aller enthaltenen Zeilen. Die will ich gar nicht. Ich will die 3, die da drinstehen. Also lngTitelZeile ist eine 3. Das können wir uns gleich angucken. Und da kann ich jetzt anfangen, zu schieben, zu ziehen, wo auch immer ich gerade hin will, also zum Beispiel Set rngAdressen neu zu setzen. Das ist rngAdressen.Offset, das verschiebt jetzt diesen Bereich. Und jetzt muss ich nur sagen, um wie viel, nämlich um genau diese lngTitelZeile, in der RowOffset, Zeilenverschiebung, und, Komma, 0, um keine Spalte, Column nach rechts oder links. Das Ergebnis von diesem Offset ist auch wieder ein Range. Deswegen kann ich sagen, nimm den bisherigen Range, verschiebe ihn per Offset und das Ergebnis schreibst du wieder in den Range. Das ändert einfach die Definition von rngAdressen. Und jetzt gucken wir zwischendurch einfach mal nach dem Speichern, was dabei rauskommt. Erstens, es geht jetzt von A4, wunderbar, aber bis H13. Und nach dem Abbrechen sehen Sie auch, wenn es markiert ist; den Befehl habe ich offenbar inzwischen schon rausgenommen. Ja, also schreiben wir nochmal kurz rein: rngAdressen.Select. Und dann, mit F5, können wir direkt abbrechen. Jetzt sehen Sie, dass dieser Bereich verschoben ist, richtiger Anfang, aber noch zu lang. Diese drei Zeilen, um die ich den Bereich nach unten geschoben habe, muss ich jetzt in seiner Länge auch wieder abziehen. Das bedeutet hier, nachdem ich ihn verschoben habe, kommt jetzt ein Set rngAdressen, da ist ein "m" zu viel, =rngAdressen.Resize, heißt das jetzt. Und zwar auf folgende Größe. Ich muss jetzt nicht die Differenz 3 wissen, sondern ich muss wissen, wie viele übrig bleiben, nämlich von bisherigen rngAdressen.Rows, Achtung Plural, alle und deren Count-Eigenschaft. Ich habe da meinetwegen 10 Zeilen drin. -lngTitelZeile-Zahl, dann würden die 10, die ich da jetzt versehentlich habe, um 3 gekürzt und also 7 bleiben. Und ich will davon nur 4 Spalten sehen. Gucken wir uns einfach das Ergebnis an. Das wird mit Select ja noch angezeigt. Also F5. Es geht jetzt von A4 nach D10. Gucken wir ruhig, wie es wirklich markiert ist. Dieser Bereich wird jetzt also für mich benutzt, und zwar absichtlich nur die ersten 4. Diese ganzen Details mit Straße, Postleitzahl, Ort, will ich im Moment nicht wissen. Ich will die auswerten und verkürze das dann auch schon, damit ich nicht unnötig Daten überprüfe, durchlese, was auch immer. Also jetzt habe ich sozusagen den richtigen Bereich gefunden und kann mich drum kümmern, den auch schön anzuzeigen.

Excel 2013 VBA für Profis

Nutzen Sie die Möglichkeiten der Programmiersprache VBA in Excel 2013, um eigene Dialoge zu erstellen, auf andere Arbeitsmappen zuzugreifen und wichtige Funktionen einzusetzen.

4 Std. 59 min (53 Videos)
Derzeit sind keine Feedbacks vorhanden...

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!