Maske zur Dateneingabe (1)

Formular zur Daten-Eingabe erstellen

Vorab bemerkt

In beispiel­sweise ein­er Adress-Tabelle ste­hen in der ersten Zeile die Über­schriften und in den fol­gen­den Zeilen die einzel­nen Posi­tio­nen. Zur Eingabe von Dat­en suchen sich die Anwen­der dann die erste freie Zeile und geben dort die entsprechen­den Werte ein.

Nun ist es heutzu­tage fast schon Stan­dard, dass die Eingabe von Dat­en in ein­er Maske erfol­gt. Das sieht nicht nur schön­er aus, es ist auch prak­tis­ch­er. So lassen sich in dieser Umge­bung seit­ens des Pro­gramms auch leichter Über­prü­fun­gen der eingegebe­nen Werte auf Kor­rek­theit durch­führen.

Excel bietet auch diese Möglichkeit. Allerd­ings gilt hier prinzip­iell die gle­iche Ein­schränkung wie bei prak­tisch jedem anderen Pro­gramm: Das Ganze muss von Hand über die Pro­gram­mi­er-Umge­bung erst ein­mal erschaf­fen wer­den. Eine wirk­lich prim­i­tive „Maske”, die Excel auch zur Dateneingabe anbi­etet, soll an dieser Stelle außen vor gelassen wer­den. Sie erfüllt nicht die Funk­tion­al­ität, die gewün­scht ist. Falls Sie es den­noch pro­bieren wollen, hier wer­den Sie beim Stich­wort Daten­maske fündig.

▲ nach oben …

Die Tabelle

Grund­lage für alle Dat­en ist eine Tabelle. Dort wer­den die Dat­en geschrieben und ver­wal­tet. Dort ste­hen in den Spal­ten auch die Über­schriften, welche die Bedeu­tung der Werte darunter erk­lären. Um für diesen Exkurs eine Basis zu haben, bieten wir Ihnen eine kleine, vorge­fer­tigte Tabelle als Muster an. Sie find­en diese hier zum Down­load. Wichtig sind erst ein­mal nur die Über­schriften, weil diese als Beze­ich­n­er in die User­Form (die Maske) über­nom­men wer­den. Das For­mu­lar ist hier noch nicht inte­gri­ert.

▲ nach oben …

Die leere Maske

Ganz zu Beginn muss erst ein­mal das Gerüst geschaf­fen wer­den. Und das ist das Fen­ster, welch­es eine leere Maske enthält. Und dazu ist es erforder­lich, dass Sie in die Pro­gram­mi­er-Umge­bung gelan­gen. In allen Excel-Ver­sio­nen geht das recht ein­fach per AltF11. Es zeigt sich nun dieses Bild, wenn noch keine Makros in dieser Mappe ver­wen­det wer­den:

Der VBA-Editor, hier das Symbol für die Maskenerstellung markiert

Der VBA-Edi­tor, hier das Sym­bol für die Masken­er­stel­lung markiert

Hin­weis: Alle hier fol­gen­den Abbil­dun­gen sind mit der Ver­sion Excel 2010 erstellt wor­den. Prinzip­iell sollte sich in allen anderen Ver­sio­nen die Ansicht gle­ichen. – Klick­en Sie zu Beginn auf den nach unten zeigen­den Pfeil in dem hierüber markierten Bere­ich. Dann wird sich dieses Bild zeigen:

Auswahl der UserForm via Symbol

Auswahl der User­Form via Sym­bol

Da Sie ja ein For­mu­lar, eine User­Form oder auch eine Maske erstellen wollen, ist die ober­ste Auswahl genau die richtige.Danach zeigt sich dann solch ein Bild:

Die noch leere UserForm

Die noch leere User­Form

Sehr auf­fäl­lig sind die bei­den neuen Fen­ster. Das aktive Fen­ster (blaue Titelleiste) UserForm1 sowie die Werkzeugsamm­lung. Auf den ersten Blick nicht so ins Auge stechend ist der neue Ein­trag in der Auflis­tung der einzel­nen Objek­te des Pro­jek­ts; direkt unter dem Ein­trag Tabelle3 (Tabelle3) ste­ht nun (markiert) die UserForm1. Dort führen Sie einen Dop­pelk­lick aus, wenn Sie pro­gram­miertech­nisch ein­mal an ander­er Stelle waren und hier­her zurück­kehren wollen.

▲ nach oben …

Die Werkzeugsamm­lung bein­hal­tet alles, was Sie zur Gestal­tung der Maske brauchen. Damit erstellen Sie die Beschreiben­den Texte, Eingabefelder und vieles andere mehr. Um Ihnen einen Überblick der wichtig­sten Möglichkeit­en zu geben, sind in den fol­gen­den Abbil­dun­gen die einzel­nen Möglichkeit­en schon markiert und darunter kurz beschreiben. Wenn Sie tiefer in die Materie ein­steigen wer­den Sie auch weit­ere, nicht bildlich dargestellte Möglichkeit­en ken­nen ler­nen. Ein Beispiel dafür wäre das let­zte Sym­bol, das Kalen­der-Steuerele­ment.

Userform: Pfeil

Werkzeug: Pfeil

Der Pfeil dient dazu, entwed­er die Größe der Form an sich zu verän­dern oder Objek­te (Ele­mente) inner­halb der Maske zu markieren und dann beispiel­sweise zu ver­schieben.

Userform: Label

Werkzeug: Label

Der offizielle Aus­druck dafür ist Label, es ist ein­fach nur eine Über­schrift oder der Beschrei­bung­s­text, welchen Sie auch for­matieren kön­nen.

Userform: Textfeld

Werkzeug: Textfeld

Werkzeug

Das Textfeld dient zur Eingabe von Tex­ten. Das sind Worte, Zahlen, Zeichen, … Aber keine Bilder.

Userform: Kombinationsfeld

Kom­bi­na­tions­feld

Kom­bi­na­tions­feld nen­nt sich dieses Objekt. Drop­Down ist vielfach auch genutzt. Hier wird zu Beginn nur eine Zeile angezeigt und nach einem Klick auf ▼ klappt die Auswahl wie ein Rol­lo herunter.

Userform: Listenfeld

Werkzeug: Lis­ten­feld

Bei einem Lis­ten­feld wer­den einen vorgegebene Anzahl von Zeilen immer angezeigt. Es kön­nen auch nur jene Ein­träge gewählt wer­den, die auch in dem Objekt aufge­führt sind.

Kontrollkästchen

Kon­trol­lkästchen

Ein Kon­trol­lkästchen ste­ht für sich alleine oder mit weit­eren da und kann unab­hängig mit einem Häkchen aktiviert sein oder nicht. Es kön­nen also auch mehrere Kon­trol­lkästchen ein­er Gruppe aktiviert sein.

Options-Feld

Options-Feld

Das Options­feld hinge­gen tritt prinzip­iell immer mehrfach in ein­er Gruppe auf. Die Eigen­heit ist, dass beim Klick auf ein anderes Options­feld der gle­ichen Gruppe die Markierung wech­selt. Wie bei den Pro­gramm­tas­ten eines Radios. Das erk­lärt auch die vielfach genutzte Beze­ich­nung RadioBut­ton.

Werkzeugsammlung: Rahmen

Werkzeug: Rah­men

Dieser Rah­men wird meist einge­fügt, bevor eine Gruppe von Feldern erstellt wird. Wer­den Options­felder dort hinein einge­fügt, dann sind diese automa­tisch dieser Gruppe zuge­fügt.

Werkzeug: Schaltfläche

Werkzeug: Schalt­fläche

Uner­lässlich sind auch die Schalt­flächen. Oft wird auch der englis­che Aus­druck But­ton genutzt.

Werkzeug: Drehfeld

Werkzeug: Drehfeld

Inter­es­sant kann ein Drehfeld sein. Damit wird in einem ver­bun­de­nen Textfeld der Wert automa­tisch um eine gegebene Schrit­tweite erhöht oder ver­min­dert. Zusät­zlich sind Gren­zw­erte möglich.

Werkzeug: Bild-Container

Werkzeug: Bild-Con­tain­er

Der Voll­ständigkeit hal­ber: Bilder (z.B. ein Logo) kön­nen Sie auch in eine User­Form ein­fü­gen.

▲ nach oben …

Das Formular mit „Leben” füllen

Zuerst wer­den Sie darüber nachgedacht haben, welche Felder Sie über­haupt brauchen. Ich lege mir das immer schriftlich fest, das erle­ichtert anschließend die Arbeit enorm. Über den Feld-Typ mache ich mir erst bei der Erstel­lung (also jet­zt) Gedanken. Typ­is­cher­weise beginne ich mit der Über­schrift in der Form. Dazu klicke ich auf das Sym­bol des Textfeldes in der Werkzeugsamm­lung und ziehe es entwed­er in die Form oder ich klicke das Sym­bol ein­fach an und posi­tion­iere dann in der User­Form …

Positionierung eines Labels (Überschrift)

Posi­tion­ierung eines Labels (Über­schrift)

… durch einen weit­eren Klick. Der leere Rah­men des Labels ist dann sicht­bar und kann mit Text gefüllt wer­den. Ich klicke immer ein Mal auf den Label und wäh­le nach einem Recht­sklick die Eigen­schaften aus dem Kon­textmenü aus. Das kön­nte dann so ausse­hen:

Das erste Bezeichnungsfeld ist eingefügt und positioniert

Das erste Beze­ich­nungs­feld ist einge­fügt und posi­tion­iert

Auch wenn es ver­führerisch ist: (Name) | Label1 ist nicht der Text des Labels son­dern der pro­gram­miertech­nis­che Name. Den kön­nen Sie gerne so lassen. Cap­tion ist aber das, wonach Sie vielle­icht suchen. Das ist der Text, der dann als Über­schrift oder auch Beschrei­bung­s­text erscheint. For­matierun­gen sind möglich, ins­beson­dere über die Auswahl Font und Fore­Col­or. Mit etwas Übung wer­den Sie sich rasch da hinein find­en.

Fügen Sie dann das jew­eilige Label und gle­ich anschließend das entsprechende Textfeld an der gewün­scht­en Posi­tion ein. Wenn es noch nicht so ganz passt, dann lassen sich die Ele­mente noch gut ver­schieben. Das Ganze kön­nte nun so ausse­hen:

Labels und Textfelder sind eingefügt und positioniert.

Labels und Textfelder sind einge­fügt und posi­tion­iert.

Wenn Sie meinem Text genau gefol­gt sind, dann fehlt ja auch noch die Anrede. Das wird im End­ef­fekt ein Kom­bi­na­tions­feld, aber das würde für diesen Ersten Teil zu tief­greifend sein. Darum ziehen Sie mit dem Pfeil-Werkzeug einen (fast unsicht­baren) Rah­men um alle Ele­mente unter­halb der Über­schrift und ziehen Sie diese so weit nach unten, dass Platz für eine Zeile mit der Anrede ist. Fügen Sie dann Label und Textfeld ein. Zum guten Schluss noch je eine Schalt­fläche OK und Abbrechen.

Damit ist der Rohbau des Gebäudes fer­tig. Zugegeben, da ist noch kein­er­lei Funk­tion­al­ität drin, im besten Fall kön­nen Sie dort Dat­en eingeben. Aber Sie haben noch keine Möglichkeit, die Inhalte in die Tabelle zu brin­gen. Aber das ist einem weit­eren Teil dieser Übung vor­be­hal­ten.

Um das einiger­maßen stil­voll abzu­run­den, soll­ten Sie den bei­den Schalt­flächen (soweit vorhan­den) noch eine Funk­tion­al­ität mit­geben. Ich selb­st ver­wende für die But­tons stets den Prä­fix cmd (für Com­mand­But­ton), andere Pro­gram­mier­er ver­wen­den vielfach btn (für But­ton, um die phonetis­che Ähn­lichkeit zu cmb, also die ComboBox/Kontrollfeld zu ver­mei­den). Als Namen gebe ich hier dann meist cmd_OK und cmd_Cancel vor.

Natür­lich wollen Sie das dann auch so anse­hen und vielle­icht auch aus­pro­bieren. Dazu fügen Sie in die Tabelle eine kleine Proze­dur ein:

Option Explicit

Sub FormularZeigen()
   UserForm1.Show
End Sub

Diese Rou­tine binden Sie entwed­er an eine Schalt­fläche (das geht so) oder Sie rufen das Mod­ul über AltF8 auf. Anschließend wird sofort das For­mu­lar erscheinen.

Nach einem Dop­pelk­lick auf die jew­eilige Schalt­fläche erscheint dann der VBA-Edi­tor und bietet auch gle­ich den ersten und nach einem weit­eren Klick auf den anderen But­ton den zweit­en Proze­dur-Rumpf an. Dort schreibe ich dann hinein:

Private Sub cmd_OK_Click()
   MsgBox "Schaltfläche " & Chr(34) & "OK" & Chr(34) & " gedrückt"
End Sub

Private Sub cmd_Cancel_Click()
   Unload UserForm1
End Sub

 Voraus­set­zung ist natür­lich, dass die User­Form auch diesen Namen hat. Diesen Stand der Dinge kön­nen Sie hier herunter laden.

Weit­er mit diesem The­ma geht es hier, allerd­ings mit anderen Dat­en (also mit ein­er anderen Maske). Der Abschnitt kann auch sep­a­rat abgear­beit­et wer­den.

Let­zte Änderung/Erweiterung: 07.12.2014

[NachOben­Let­zte Verweis=„ML: UFo (1)”]
Dieser Beitrag wurde unter Coding / Programmieren, Downloads, Mit VBA/Makro, Musterlösungen, Tabelle und Zelle, Verschiedenes abgelegt und mit , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.