Excel 2016 VBA für Profis

Markierte Adresse finden

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Mit einer einfachen Berechnung findet Ihr Code die zugehörige Tabellenzeile mit den weiteren Adressdaten, die zu der markierten Zeile passt.

Transkript

Wenn Sie den Dialog jetzt starten, sehen Sie, es stehen alle Adressen drin. Die können Sie auch anklicken. Aber das eigentliche Ziel oder sagen wir das Vorziel ist ja hier die Adresse anzuzeigen, um Sie dann später beim "OK" an irgendwen ausliefern zu können. Also, das Zwischenziel, das Vorziel ist, hier eine Adresse auszuwählen und sie dort komplett anzuzeigen. Und Sie haben sich vielleicht gewundert, warum ich so absichtlich diesen Bereich auf vier Spalten begrenzt habe, denn zu der Adresse gehört ja der Rest hier auch noch. Natürlich kann ich in einer Listbox mehr als diese vier Spalten anzeigen, das sind jetzt insgesamt acht, das würde auch noch locker gehen. Und für sieben Zeilen fällt das auch nicht auf. Aber wenn Sie hier mal einige hundert Adressen drin haben, macht es einen erheblichen Unterschied, ob Sie hier vier oder acht Spalten anzeigen. Das steigt exponentiell im Zeitverbrauch an, das heißt, von 50 auf 100 Zeilen ist nicht doppelt so viel, sondern ein Vielfaches. Das wird richtig langsam. Deswegen sollten Sie hier möglichst wenig Daten anzeigen, heißt vor allem, wenig Spalten. Sie könnten hier auch drei Daten zu einer Spalte zusammenfassen, das würde sich auch lohnen. Wichtig ist jedenfalls, dass Sie hier auswählen können, sodass es hier eindeutig genug ist, und dann mit dem Klick erst hier den Rest nachladen, von einer einzigen Zeile. Sie werden gleich sehen, das geht so schnell und so einfach, dass es keine Mühe macht, diese Daten nachzuladen und nicht heimlich in der Listbox mitzuführen. Dazu brauche ich gleich noch ein neues Element, aber zuerst muss ich mal die richtige Nummer rauskriegen, das heißt, wenn es hier um die "Reich GmbH" geht, will ich nicht diese fünf wissen. Im Grunde erfahre ich hier eine vier: 0, 1, 2, 3, 4 ist der Listindex. Und ich will aber hier eine acht sehen. Ich muss also rausfinden, in welcher Zeile -- nämlich acht -- ich mich eigentlich befinde, wenn ich hier die mit der Nummer fünf anklicke. Das ist aber gar nicht so schwierig. Es geht also erstmal um dieses Klick-Ereignis der Listbox, ich mache da jetzt im Entwurf einen Doppelklick drauf, dann bin ich nämlich schon da drin. Dort würde ich jetzt gerne mit den Adressen weiterarbeiten und das bedeutet, ich müsste die eigentlich nochmal auslesen. Auf gar keinen Fall, die haben wir einmal ausgelesen, das heißt, ich werde diese hier mit "Bearbeiten" "Ersetzen", so wie sie markiert ist, ändern und dort schonmal die Range-Adressen anpassen und zwar in der kompletten Prozedur, außerhalb dieser Prozedur gibt es das gerade nicht, also das ganze Wort, "Alle ersetzen". Neun Stück kommt ungefähr hin. Und dieses dann natürlich auch als Modul öffentlich deklarieren, "Strg+X" zum ausschneiden, und "Strg+V" zum Einfügen. Und da mache ich jetzt wieder so ein Kommentarzeichen hin, damit Sie sehen, der Unterstrich ist noch da. Jetzt hat sich im Moment nichts geändert, Kompiliercheck sagt, es ist noch alles in Ordnung, außer dass ich jetzt nach "UserForm_Initialize()" auch auf diesen Range zugreifen kann. Das ist sowieso das erste, was ausgeführt wird. Bei der Gelegenheit ist allerdings leider mein Klick schon wieder aufgeräumt worden. Also ich muss hier nochmal einen Doppelklick reinmachen, wenn Sie hier nichts reinschreiben, und die "Tab-Taste" zählt nicht, sowas hätte ich mindestens machen müssen, dann werden solche Code-Leichen auch schon aufgeräumt. Also ich will beim Klick auf diese Adresse herauskriegen, in welcher Zeile das tatsächlich steht. Dazu baue ich mir einen kleinen, zweiten Range, den nenne ich schonmal "Detail" oder können wir ruhig "Details" sagen, da steht mehr drin. Und der besteht aus der richtigen Zeile in Excel. Das heißt, ich kann ihn direkt definieren: "Set rngDetails=", ausgehend von meinen Adressen, will ich alle Rows haben -- Achtung: Plural -- und davon nur eine einzige, die die richtige Nummer hat. Nämlich innerhalb der Auflistung "me.lstAdressen" gibt es einen "Listindex", das ist das, was ich eben gesagt hatte: 0, 1, 2, 3, 4, der ist nullbasiert. Die erste Zeile hat also die Zeile null, und deswegen muss ich einen drauf addieren, weil in Excel-Tabellen die erste Zeile, oder auch die erste Spalte, immer den Index eins hat. Die Zelle "A1" ist mit dem Index (1,1) und nicht etwa (0,0) versehen. Und das können wir direkt mal prüfen, also die Messagebox, die dann direkt hinterher erscheint, sagt, von den Range-Details die Row -- jetzt wieder den Singular, nämlich die Zeilennummer. Einmal speichern, einmal Kompilierchecken, und dann mit F5 starten. Ich möchte jetzt diese Reich GmBH prüfen. Diese Nummer interessiert mich überhaupt nicht, sondern ich möchte die acht sehen. Wenn ich jetzt also hier draufklicke, kommt korrekt die acht. Sie sollten bei solchen Gelegenheiten immer den ersten und den letzten prüfen, das sind immer die Problemkandidaten. Ein Klick hier vorne, seien Sie nicht irritiert, der ist noch nicht weggeräumt, aber der ist schon sichtbar, das liegt an der Messagebox. Also, die erste Zeile, die ich habe, ist die Nummer vier, alles super. Und die letzte Zeile ist die Nummer 10, auch super. Das heißt, wenn ich gleich auf die Daten zugreifen will, kann ich sagen: In der Excel-Tabelle hätte ich gerne von der Zeile zehn die Daten. Was hier steht an Nummern, interessiert mich eigentlich nicht, das ist nur, wenn man sie mal eindeutig inhaltlich erkennen möchte. Ich kann hier direkt auf die Zeilennummer zugreifen und damit dann die Daten hier ermitteln.

Excel 2016 VBA für Profis

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

5 Std. 52 min (55 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Exklusiv für Abo-Kunden
Erscheinungsdatum:25.01.2017

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!