Excel 2016 VBA für Profis

Einfügetypen vorbereiten

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Weil der Code mit den verschiedenen Möglichkeiten des Einfügens einfach umgehen können soll, setzen Sie dafür einen Enumeration-Typ ein.

Transkript

Dieser Dialog ist jetzt fertig, was die Quellen betrifft. Ich sehe verschiedene Adressen. Wenn ich die anklicke, sehe ich deren Details. Was noch nicht drin ist, sind die Ziele. Ich möchte es ja ermöglichen, dass ich die ausgewählte Adresse entweder in die Zwischenablage kopiere, oder in eine bereits geöffnete Excel-Datei oder in eine noch geschlossene Excel-Datei, die ich dann erst öffne. Das sind mehrere Ziele, von denen immer nur eins gelten darf und da bietet es sich an, auch wieder eine Listbox, so ein Listenfeld zu nehmen. Da kommt noch ein Label dazwischen, also hier kann ich ja schon mal irgendwie ein Label dazwischenlegen, auch wenn ich es noch nicht brauche, und dann die Listbox in der passenden Breite darunter legen, so ungefähr. Dann sollten die passende Namen kriegen, also das ist "lblZiele" und wird "transparent". Der Text, der da drin steht, kann vorläufig mal "Ziele" heißen, und da kommt dann die Listbox "lstZiele" und ich kann es jetzt schon vermuten: Die wird sowas wie vier Spalten kriegen. Kann ich ja schon mal eintragen, vielleicht komme ich auch mit drei aus, machen wir erstmal drei. Und im Userform "Initialize" kann ich da schon mal was reinschreiben. Also hier am Ende, nachdem "lstAdressen", meine Quelle, sozusagen fertig ist, kommt das nächste, nämlich "with me.lstZiele" und ein "end with". Da könnte ich jetzt im einfachsten Fall ein "AddItem" reinschreiben, dort steht dann, machen wir es ruhig schon in Klammern "(Zwischenablage)", die Klammern sind rein optischer Natur, das hat sonst nichts zu sagen. Das nächste ".AddItem" ist "geöffnete Excel-Datei", muss man immer dazu sagen und im Singular. ".Additem", "geschlossene Excel-Datei". Und daraus könnte ich dann auswählen, ich speichere das schon mal, "Debuggen" "Komplieren"-Check. nach dem F5 sehen Sie, da wäre jetzt die Möglichkeit, hier jeweils eins auszuwählen. Das Problem ist nur, es ist nicht unbedingt eine Excel-Datei offen, sondern beliebig viele. Ich kann also nicht nachher beim "OK" einfach fragen: Aha, erste Zeile, muss die Zwischenablage sein, zweite Zeile muss also eine geöffnete Excel-Datei sein, weil hier 5,10,100, wie viel auch immer stehen können und dann vielleicht erst geschlossene Excel-Dateien angeboten werden. Ich könnte natürlich, wenn das ein einziger Punkt bleibt, den nach vorne schieben, aber es soll flexibler sein. Also werde ich intern Nummern vergeben. Nummern heißt automatisch immer Enumerations, wenn Sie es vernünftig machen wollen. Also hier mit Steuerungsposition eins an den Anfang des Codes, und dort schreibe ich eine Enumeration. Hier zwischen "enum" die gilt nur in diesem Modul, in dieser Formularklasse, muss man der Deutlichkeit halber sagen. Meine Enumeration-Namen fangen immer wegen ungarischer Notation mit "enm" an. Und die nenne ich jetzt einfach "Typen" und "end enum". Und auch die Namen innerhalb der Enumeration, die richte ich dann nach diesem Namen aus, nicht "enm", das wäre zu allgemein, sondern es gibt jetzt den "typZwischenablage". Und es gibt den "typDateiOffen" und es gibt den "typDateiGeschlossen". Und das kann ich jetzt ergänzen. Also da steht in der zweiten Spalte, die ist ja schon mehrspaltig, hinter ".AddItem" folgt also jetzt ein "Column", Klammer auf, die zweite Spalte hat die "Column" Nummer 1, 0,1, ist ja null-basiert, Komma, und ich weiß schon, ich befinde mich in der ersten überhaupt angelegten Zeile, kann ich hier also deutlich eine "0" reinschreiben und Klammer zu, "=". Da kann ich jetzt mit Enumeration, dem Namen der Enumeration, dann einen Punkt etwas auswählen: "typZwischenablage". Es würde auch funktionieren, wenn Sie diesen Teil weglassen, also ich mache das mal für den zweiten, dort ist "Column" auch wieder "1", aber inzwischen von der Zeile mit der Nummer 1, "=TypDateiOffen", funktioniert genauso, solange Sie nicht irgendein Wort benutzen, was namensgleich mit irgendeinem anderen Begriff ist, deswegen mache ich ganz gern die Enumeration davor, also hier immer noch die Spalte mit der Nummer 1 und dieses Mal dann die Zeile mit der Nummer 2, das ist dann "typDateiGeschlossen". Wenn ich jetzt das Ganze mit F5 starte, sehen Sie diese Typen dahinter. Und wenn ich ganz viele Excel-Dateien habe, beliebig viele, dann kann ich diese "1" auslesen, die wird bei Gelegenheit nach vorne wandern, weil sie dort besser zu verstecken ist, die letzte Spalte ist immer sehr unpraktisch zu verstecken, die erste hingegen fast automatisch und die wird auch als "value" zurückgeliefert, wenn man sich nicht viel Mühe gibt und mit der "Column"-Eigenschaft irgendwas ausliest. Also, ich kann jetzt zu jeder Zeile sagen von welchem Typ sie ist, und der Typ1 wird mehrfach auftauchen, und welche Datei dann dahintersteht, ist mir eigentlich erstmal egal.

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!