Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Excel 2016 VBA Grundkurs

UsedRange

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Ein Benutzer muss in einer Tabelle gar nicht markieren, wo die Daten enthalten sind, denn mit UsedRange können Sie genau das ermitteln lassen.

Transkript

Wenn Makros die Daten aus einer Tabelle auswerten wollen, sehe ich oft ganz entsetzliche Programmierung. Die machen nichts anderes, als in der ersten Spalte "A" solange runterzuwandern, bis sie irgendwann eine Leerzelle finden. und glauben dann sie wüssten jetzt wo sich in dieser Tabelle Daten befinden. Natürlich können Sie den Benutzer vorher bitten, zu markieren, was er meint, dann würde er irgendwas markieren, und Sie sagen: Aha, das sind also meine Daten. Wenn er das nicht mitmarkiert, haben Sie Pech Deswegen gibt es oft die Methode, in irgendeiner Spalte abwärts zu wandern und zu hoffen, dass es keine Leerzeilen gibt. Sondern wenn irgendwann eine Zeile keinen Eintrag mehr hat, dass das die unterste Zeile ist. Das ist schade. Das ist nämlich viel Mühe. Das ist auch noch entsetzlich langsam. Und je nachdem, wie lange diese Tabelle ist haben Sie da einige tausend Zeilen zu durchwandern. Das ist nicht nur langsam, sondern auch noch völlig überflüssig. Ich möchte Ihnen das hier an einer beliebigen Tabelle zeigen, wo ich jetzt eine Dateneingabe simuliere. Also ich mache jetzt hier völlig banal irgendeine Aufzählung. Ich nehme einfach ein paar Monate, aber natürlich fortgezählt. Hier kommen irgendwie noch ein paar Zahlen, aber nicht so einfach an den Rand. Wir wollen es dem Makro ja nicht einfach machen. Irgendwo in der Tabelle befinden sich Daten. Und hier - völlig egal, ich erfinde mal einfach - hier stehen "X"e drin. Mit STRG + RETURN fülle ich jetzt den ganzen Inhalt. Das Ganze ist nicht schön, sondern nur irgendwo eine Sammlung von Daten. Und die möchte ich jetzt verarbeiten, bearbeiten. ohne dass ich den Benutzer nötige, die zu markieren. Klar könnte er reinklicken, STRG + "A" drücken, dann sind die markiert, aber das kann ich auch ohne dass er sich die Mühe machen muss. Und zwar mit einem Objekt, welches sich UsedRange nennt. Genutzer Bereich. Deswegen will ich hier "Sub FindeGenutzenBereich" schreiben. Und ein Range-Objekt... Wir fangen besser mal mit dem Worksheet-Objekt an. "wksDieses as Worksheet" Aber richtig geschrieben, dann klappt es auch, und erst danach, dass "dim Range" "Used", oder wenn ich es dann einheitlich deutsch mache, "Genutzt as Range" Diese beiden Objekte brauchen Sie eigentlich fast immer in der Programmierung. Entweder das Worksheet interessiert nicht, in diesem Fall schon, oder Sie befassen sich mit Zellen, und dann können Sie ungesehen immer ein Range-Objekt machen. Nehmen wir zuerst das Worksheet, also ein Objekt, deswegen mit "Set". "Set wksDieses =ActiveWokrsheet". Aber natürlich "ActiveSheet", nicht das Workbook. Da sollten Sie mal ein Auge drauf haben, deswegen habe ich hier diese Präfixe, die ungarische Notation, dass mir direkt auffallen würde, da steht "Workbook" und hier aber "wks" für "Worksheet". Und da drin kann ich jetzt den genutzten Bereich aufrufen. Und der ergibt sich aus dem Worksheet-Objekt, - da sehe ich jetzt auch wieder die Eigenschaften. ActiveSheet hätte die nämlich nicht - und dort gibt es eine Eigenschaft, die heißt UsedRange. Die enthält schon alles, was ich wissen möchte. Ich kann also mit "debug.Print" mit direkt von "RangeGenutzt" die "AddressLocal" anzeigen lassen. Also einmal Speichern. Vorher prüfen, dass ich nicht heimlich irgendwas markiert habe. Ich weiß also nichts von dieser Tabelle. Und wir können die auch direkt markieren lassen. Das ist das ja, was beim Aufzeichnen immer so unschön passiert, aber hier zu Beweiszwecken sehr geeignet ist. Diesen Range mit "Select" einfach markieren lassen. dann mit F5 laufen lassen. Hier steht schon unten "b5" bis "F12" und das ist da auch markiert. Also, ich muss mich überhaupt nicht darum kümmern, wo der Bereich steht. Excel weiß das und ich muss es nur fragen. Und davon kann ich auch noch ein paar Sachen mehr herausbekommen. Nehmen wir zum Beispiel die unterste Zeile. Oder fangen wir vielleicht mit der ersten, der obersten Zeile an. Für die ist es nämlich einfacher. Also "debug.Print", "ObersteZeile", und für die Spalten tut es das entsprechend. Da kann ich einfach "RangeGenutzt" abfragen, und dort etwas überraschend diese Eigenschaft Row. Row ist nicht die Auflistung. Rows wäre die Auflistung. Row ist eine Zahl und zwar die Zahl, die die Zeile hat. Und wenn Sie sich jetzt fragen: Aber da sind doch ganz viele Zeilen, welche denn? Die Erste. Wenn Sie nichts dagegen machen, kriegen Sie von so einem Bereich die erste Zeile, die erste Spalte. Also, die Antwort wird eine "5" sein. weil ich Row, den Singular nehme. Da muss ich wieder ein bisschen Platz schaffen jetzt. Und mit F5 sehen Sie, die oberste Zeile ist die "5". Die unterste Zeile muss ich ein bisschen rechnen. Ich mache das mal schön einzeln. Also "AnzahlZeilen" ist dann nämlich von "RangeGenutzt" die "Rows", - jetzt der Plural, die Auflistung - und deren Count-Eigenschaft. Ich möchte von allen Zeilen die Anzahl wissen. Und wenn ich die zusammenzähle, das kann ich jetzt in einem Schwung schon machen, dann ergibt sich die letzte Zeile, da muss man allerdings aufpassen. Ich fange also an mit "RangeGenutzt.Row", - das ist die erste Zeile - plus "RangeGesamt.Rows" im Plural, "Count". Und wenn Sie jetzt nochmal in echt nachgucken, die erste Zeile hat die Nummer 5. Dann kommen hier zwei, vier, sechs, acht Zeilen drauf. Aber fünf plus ach ergibt nicht die zwölf, denn ich müsste einen vorher zählen. Also davon insgesamt minus eins. Und damit haben wir alle Informationen, die wir brauchen. Also mit F5 sehe ich jetzt, die erste hat die Nummer "5", es gibt "8" Zeilen, und damit bin ich in der letzten Zeile, bei der Zeile "12". Dasselbe geht mit den Spalten auch. Sie können also an dieser Stelle sehr bequem von so einer Auswahl, - und dieses ist eine spezielle Auswahl - Alles erfragen, was Sie brauchen. Aber das Wichtigste ist dieses UsedRange-Objekt, was Ihnen einen Bereich zurückgibt, und zwar automatisch denjenigen der Daten. Jetzt werde ich das ganz unauffällig mit einem anderen machen. Also wir haben ja hier vorne meine Daten, - ich schreibe jetzt hier irgendwie nochmal ein "x" rein - das heißt was zu finden ist, ist dieser Bereich. Und dann schauen wir mal ob es klappt. Ich habe es ja ausdrücklich neutral formuliert über ActiveSheet. Also mit F5. Bevor ich das jetzt alles durchdenke, gucken wir mal, was markiert ist. Da ist oben sogar noch mehr, da stand nämlich was drin. Da muss man immer aufpassen, wenn da irgendwo noch Objekte rumliegen. Dann mache ich das hier mal mit einem anderen Bereich. Also da wieder mit "X"n schön markiert, aber woanders hin klicken. ich weiß von nichts sozusagen. Und wenn ich das jetzt hier starte mit F5, dann kann ich direkt nachgucken: Hier ist er korrekt markiert. Der UsedRange ist also extrem praktisch, weil Sie nicht lange suchen müssen, wo die Daten stehen, sondern es frei Haus geliefert bekommen.

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
Ihr(e) Trainer:
Erscheinungsdatum:30.08.2016
Laufzeit:7 Std. 25 min (66 Videos)

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!