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 für Profis

Mehrspaltige Listenfelder

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Mehrspaltige Listenfelder bieten die Möglichkeit, mehrere Inhalte gleichzeitig anzuzeigen oder diese für späteren Zugriff vorübergehend auszublenden.

Transkript

Dieser Dialog kann jetzt sehr schön die verschiedenen Informationen anzeigen, entweder die Tabellennamen oder die Zelladressen. Und ich möchte jetzt in dieser Listbox mehr Informationen anzeigen. Die können nämlich auch mehrspaltig... ich zeichne das jetzt hier für das Zweispaltige, indem Sie z. B. zu der Zelladresse noch den Inhalt anzeigen. Da muss ich gleich noch was eintragen, aber jedenfalls eine beliebige weitere Information. Also, wenn ich jetzt hier abbreche, muss ich als Erstes im Entwurf dafür sorgen, dass überhaupt die Anzahl der Spalten: "ColumnCount" nicht eins sondern zwei ist und danach sollten Sie auch beschreiben, wie breit die Spalten sind. Dazu gucken wir erstmal nach, wie breit die Liste überhaupt ist. Das steht hier ganz unten unter "Width" in Punkten. Die ist also runde 400 Punkt breit. Deswegen werde ich die Spaltenbreiten jetzt verteilen. Das trifft vor allem die Tabellennamen, die ein bisschen länger sein können. Die "ColumnWidths" ist eine Aufzählung aller Spaltenbreiten, wobei die letzte Spalte egal ist. Von den 407 Punkt werde ich jetzt also hier, sagen wir, 200 nennen. Man würde normalerweise Semikolon und jetzt 207, irgendwas schreiben. Mit Return bestätigen und Sie sehen, das Punkt steht dahinter. Faktisch kriegt die letzte Spalte immer den Rest, d. h. das kann ich mir schenken. Ich würde also ein so einer Stelle wirklich immer nur die Breiten aller Spalten, außer der letzten angeben und mit Return bestätigen. Dann weiß ich jetzt, egal, wie breit die Liste ist, die übrigen 207, 25 Punkt gehen in die letzte Spalte. Dann kommt der Teil, dass ich die Daten fülle, also im UserForm "Initialize", beziehungsweise von dort aus werden ja nur die Varianten aufgerufen. Dann muss ich also hier bei "Addltem" zusätzlich die zweite Spalte schreiben. Das ist, sagen wir es freundlich, ein bisschen gewöhnungsbedürftig. "Addltem", das ist noch in Ordnung. Das ist eine Methode mit einem Parameter. Soweit alles super. Das, was jetzt kommt, nämlich der Punkt "Column", wäre normalerweise ein Objekt, das wird hier als Eigenschaft benutzt, mit zwei Parametern, die, in den eckigen Klammern hier behaupten, sie seien optional und das ist definitiv falsch. Die sind nicht optional, auch wenn das da so steht. Zuerst muss ich die Spalte angeben Die sind nullbasiert, das heißt, wenn ich in die zweite Spalte etwas schreiben will, muss ich sagen: Die Nummer 1 soll beschriftet werden. Und, normalerweise würde man sagen, dass ich jetzt genug Informationen habe, die laufende zweite Spalte. Das reicht aber nicht. Ich muss zusätzlich sagen, in welcher Zeile und zwar in die Zeile, die ich gerade beschrifte, die mit "Addltem" erzeugt ist. Da müssen Sie jemanden fragen, der weiß, die wie vielte Zeile das ist. Sie müssen das nicht selber mitzählen. Das macht nämlich diese Listauswahl schon. Sie können also die Listauswahl fragen: Wie viele "ListCount" -Elemente hast du eigentlich da gerade drin? Und, wenn die erste Zeile beschrifte, dann sagt er mir: Es ist "ListCount" 1, aber es trägt ja nullbasiert die Nummer 1, Ich muss also dann -1 rechnen. Das ist etwas gewöhnungsbedürftig, sind weder optional, wie behauptet, noch können Sie direkt auf die Zahl zugreifen. Sie müssen fragen, wie viele Elemente gibt's schon und einen weniger ist das Element, was beschriftet wird und wie gesagt "Column" ist kein Objekt, sondern eine Eigenschaft und die kriegt jetzt den eigentlichen Inhalt. Und bei den Tabellen, frage ich jetzt mal einfach... Da gibt's nicht so schön Sachen, die man anzeigen kann. Ich frage einfach mal: Ist sie sichtbar oder nicht? Ich frage also für das aktuelle Objekt "wksDieses" die "Visible"-Eigenschaft ab, nur damit da irgendetwas steht. Und entsprechend hier unten wird also mit "Column" die zweite Spalte, also "(1,ListCount-1=)", anders, als bei dem "Addltem" ist hier ein gleich. Und da frage ich jetzt mal den Inhalt ab. "RngDieser.Value". Weil der leer sein könnte, verkette ich das mit einem Leerstring. Hier könnte "Null" drinstehen, das mag die Liste nicht, also verkette ich das mit einem Leerstring und wenn dann "Null" drinsteht, wird das insgesamt ein Leerstring und dann sind alle wieder zufrieden. Damit das vernünftig aussieht nach dem Speichern, muss ich mal eben ein paar Daten reinschreiben. Also völlig beliebig zwei Zahlen. Die können wir gerne beide markieren und hier hochziehen, aber ich sorge dafür, dass nicht alles markiert ist und dann gucken wir mal, was rauskommt. Gespeichert, Kompilier-Check und F5 Und Sie sehen hier, die Tabellennamen sind im Moment alle noch sichtbar - 1 ist "True", wahr, wenn ich "Visible" abfrage, also alle sichtbar das müssen wir noch schöner machen und die Zähladressen, Sie sehen hier, einige sind innerhalb der Markierung beschriftet, also zum Beispiel F5 das ist hier in der Mitte 1, funktioniert also auch. ich möchte gerade die Sichtbarkeit der Tabelle noch ein bisschen schöner machen und zwar an dieser Stelle nicht einfach "Visible" abfragen sondern da gibt es diese "if"-Konstruktion eigentlich ein Operator, als "function". Dieses "iif" ist hier jetzt ganz praktisch wenn das "visible" auf "True" steht, dann, Komma, schreibe ich "sichtbar", ansonsten schreibe ich "unsichtbar". Das ist also "-1" und "0" ein bisschen hübscher gemacht und damit es überhaupt einen Unterschied macht muss ich jetzt auch noch ein paar verstecke Also, das ist das, was sich als "Ausblenden" hier anzeigt und dann können wir mal gucken, was der Dialog anzeigt. Speichern, Kompilier-Check, F5. Und Sie sehen, jetzt steht hier sehr viel schöner "sichtbar", "unsichtbar" und der zeigt nach wie vor seine Daten an. Sie können also ohne Probleme mehrspaltige, nicht nur zwei, auch drei-, vier-, fünfspaltige Listen anzeigen, das geht auch für Comboboxen Sie müssen nur irgendwann daran denken, wenn Sie sehr viele Daten anzeigen, in sehr vielen Spalten, das kann auch schon mal ein bisschen langsamer werden, das dauert ein bisschen, bis das wehtut, aber zumindest sollten Sie das nicht mutwillig vollballern mit Daten und lieber, wenn Sie einen Datensatz ausgewählt haben oder eine Zelle oder ein Objekt nachträglich deren Zusatzinformationen laden beispielsweise die komplette Adresse, wenn Sie nur den Namen ausgewählt haben. Das muss man nicht alles in Listen mitführen, wenn es zu viel wird, man kann das aber ruhig.

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:
Software:
Exklusiv für Abo-Kunden
Ihr(e) Trainer:
Erscheinungsdatum:25.01.2017
Laufzeit:5 Std. 52 min (55 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!