Visual Basic ist eine hervorragende Sprache zur Automatisierung sich wiederholender Aufgaben in Excel. Stellen Sie sich vor, Sie bringen Ihre Automatisierung auf eine Stufe, indem Sie hochfunktionale Benutzerformulare erstellen, die auch für die Endbenutzer aufgeräumt aussehen.
Benutzerformulare in VBA präsentieren Ihnen eine leere Leinwand; Sie können die Formulare jederzeit nach Ihren Bedürfnissen gestalten und organisieren.
In diesem Leitfaden erfahren Sie, wie Sie ein schülerbasiertes Dateneingabeformular erstellen, das relevante Informationen in verknüpften Excel-Tabellen erfasst.
Erstellen eines Benutzerformulars mit Excel VBA
Öffnen Sie eine neue Excel-Arbeitsmappe und führen Sie einige vorbereitende Schritte durch, bevor Sie mit der Erstellung Ihres Dateneingabeformulars beginnen.
Speichern Sie Ihre Arbeitsmappe unter dem gewünschten Namen; Vergessen Sie nicht, den Dateityp in eine zu ändern Excel-Arbeitsmappe mit Makros.
Verwandt:Websites und Blogs zum Erlernen von Excel-Tipps und -Tricks
Fügen Sie dieser Arbeitsmappe zwei Blätter mit den folgenden Namen hinzu:
- Blatt1: Zuhause
- Blatt2: Studentendatenbank
Fühlen Sie sich frei, diese Namen gemäß Ihren Anforderungen zu ändern.
In dem Zuhause Blatt, fügen Sie eine Schaltfläche hinzu, um das Makro des Benutzerformulars zu steuern. Gehen Sie zum Entwickler Registerkarte und klicken Sie auf die Taste Möglichkeit aus der Einfügung Dropdown-Liste. Platzieren Sie die Schaltfläche an einer beliebigen Stelle auf dem Blatt.
Nachdem Sie die Schaltfläche platziert haben, benennen Sie sie um. Klicken Sie mit der rechten Maustaste darauf und klicken Sie auf Neu um ein neues Makro zum Anzeigen des Formulars zuzuweisen.
Geben Sie im Editorfenster folgenden Code ein:
Unter Button1_Click()
Benutzerformular. Show
End Sub
Einmal die Zuhause und Studentendatenbank Blätter sind fertig, es ist Zeit, das Benutzerformular zu entwerfen. Navigieren Sie zu Entwickler Registerkarte und klicken Sie auf Visual Basic um den Editor zu öffnen. Alternativ können Sie auch drücken ALT+F11 um das Editorfenster zu öffnen.
Klicken Sie auf die Einfügung antippen und auswählen Benutzerformular.
Ein leeres Benutzerformular ist einsatzbereit; zusammen mit dem formular öffnet sich eine begleitende toolbox, die alle wesentlichen werkzeuge zur gestaltung des layouts enthält.
Wählen Sie in der Toolbox die aus Rahmen Möglichkeit. Ziehen Sie dies auf das Benutzerformular und ändern Sie die Größe.
In dem (Name) Option können Sie den Namen des Rahmens ändern. Um den Namen im Frontend anzuzeigen, können Sie den Namen in der ändern Bildbeschriftung Säule.
Als nächstes wählen Sie die Etikette Option aus der Toolbox und fügen Sie zwei Beschriftungen innerhalb dieses Rahmens ein. Benennen Sie die erste um in Anmeldenummer und die zweite als Studenten ID.
Es gilt die gleiche Umbenennungslogik; Ändern Sie die Namen über die Bildbeschriftung Option innerhalb der Eigenschaften Fenster. Stellen Sie sicher, dass Sie das entsprechende Etikett auswählen, bevor Sie seinen Namen ändern.
Fügen Sie als Nächstes zwei Textfelder neben den Beschriftungsfeldern ein. Diese werden verwendet, um die Eingaben des Benutzers zu erfassen. Ändern Sie die Namen von zwei Textfeldern über die (Name) Spalte innerhalb der Eigenschaften Fenster. Die Namen lauten wie folgt:
- Textbox1: txtBewerbungsNr
- Textbox2: txtStudentID
Entwerfen des Rahmens für Schülerdetails
Fügen Sie einen vertikalen Rahmen ein und fügen Sie 10 Beschriftungen und 10 Textfelder hinzu. Benennen Sie jeden von ihnen wie folgt um:
- Label3: Name
- Label4: Zeitalter
- Label5: Adresse
- Label6: Telefon
- Label7: Stadt
- Label8: Land
- Label9: Geburtsdatum
- Label10: Postleitzahl
- Label11: Staatsangehörigkeit
- Label12: Geschlecht
Fügen Sie neben diesen Labels entsprechende Textfelder ein; füge zwei (oder mehr) ein Optionsschaltfläche Felder aus der Benutzerformular-Toolbox neben dem Geschlecht Etikette. Benennen Sie sie um Männlich und Weiblich (zusammen mit Benutzerdefiniert).
Entwerfen des Rahmens für Kursdetails
Fügen Sie einen weiteren vertikalen Rahmen hinzu und fügen Sie sechs Beschriftungen und sechs Textfelder ein, die jeder Beschriftung entsprechen. Benennen Sie die Labels wie folgt um:
- Label13: Kursname
- Label14: Kurs-ID
- Label15: Anmeldestartdatum
- Label16: Enddatum der Anmeldung
- Label17: Kursdauer
- Label18: Abteilung
Verwandt: 4 Fehler, die Sie beim Programmieren von Excel-Makros mit VBA vermeiden sollten
Entwerfen des Rahmens für Zahlungsdetails
Fügen Sie einen neuen Rahmen ein; Fügen Sie ein neues Label hinzu und benennen Sie es um in "Möchten Sie die Zahlungsdetails aktualisieren?" Füge zwei ein Optionsschaltflächen; benennen Sie sie um Jawohl und Nein.
Fügen Sie auf ähnliche Weise einen neuen Rahmen hinzu, der zwei zusätzliche Beschriftungen und zwei Kombinationsfelder enthält. Benennen Sie die Labels wie folgt um:
- Label19: Zahlung erhalten
- Label20: Zahlungsart
Entwerfen des Navigationsbereichs
Fügen Sie im letzten Frame drei Schaltflächen aus der Toolbox hinzu, die Code für die Ausführung der Formulare enthalten.
Benennen Sie die Schaltflächen wie folgt um:
- Knopf 1: Details speichern
- Taste2: Klare Form
- Taste3: Ausgang
Schreiben des automatisierten Formularcodes: Schaltfläche „Details speichern“.
Doppelklicken Sie auf die Details speichern Taste. Fügen Sie im folgenden Modul den folgenden Code ein:
Privat Sub CommandButton2_Click()
„deklarieren Sie die Variablen, die in den Codes verwendet werden
Dim sht As Worksheet, sht1 As Worksheet, lastrow As Long'Validierungen hinzufügen, um zu prüfen, ob Zeichenwerte in numerische Felder eingegeben werden.
Wenn VBA.IsNumeric (txtApplicationNo. Value) = False Then
MsgBox "In der Antragsnummer werden nur numerische Werte akzeptiert", vbCritical
Sub beenden
Ende WennWenn VBA.IsNumeric (txtStudentID.Value) = False Then
MsgBox "In der Studenten-ID werden nur numerische Werte akzeptiert", vbCritical
Sub beenden
Ende WennWenn VBA.IsNumeric (txtAge. Wert) = False Then
MsgBox "Im Alter werden nur numerische Werte akzeptiert", vbCritical
Sub beenden
Ende WennWenn VBA.IsNumeric (txtPhone. Wert) = False Then
MsgBox "In der Telefonnummer werden nur numerische Werte akzeptiert", vbCritical
Sub beenden
Ende WennWenn VBA.IsNumeric (Me.txtCourseID.Value) = False Then
MsgBox "In der Kurs-ID werden nur numerische Werte akzeptiert", vbCritical
Sub beenden
Ende Wenn'Verknüpfen Sie die Textfeldfelder mit den zugrunde liegenden Blättern, um eine fortlaufende Datenbank zu erstellen
Setze sht = DieseArbeitsmappe. Sheets ("Schülerdatenbank")'letzte gefüllte Zeile in beiden Blättern berechnen
letzte Zeile = sht. Bereich("a" & Zeilen. Count).End (xlUp).Row + 1
'fügen Sie die Werte jedes Textfelds in die entsprechenden Blattzellen ein
Mit Scheiße
.Range("a" & lastrow).Value = txtApplicationNo. Wert
.Range("b" & lastrow).Value = txtStudentID.Value
.Range("c" & lastrow).Value = txtName. Wert
.Range("d" & lastrow).Value = txtAge. Wert
.Range("e" & lastrow).Value = txtDOB.Value
.Range("g" & lastrow).Value = txtAddress. Wert
.Range("h" & lastrow).Value = txtPhone. Wert
.Range("i" & lastrow).Value = txtCity. Wert
.Range("j" & lastrow).Value = txtCountry. Wert
.Range("k" & lastrow).Value = txtZip. Wert
.Range("l" & lastrow).Value = txtNationalität. Wert
.Range("m" & lastrow).Value = txtCourse. Wert
.Range("n" & lastrow).Value = txtCourseID.Value
.Range("o" & lastrow).Value = txtenrollmentstart. Wert
.Range("p" & lastrow).Value = txtenrollmentend. Wert
.Range("q" & lastrow).Value = txtcourseduration. Wert
.Range("r" & lastrow).Value = txtDept. WertEnde mit
scheiße. aktivieren Sie'Geschlecht gemäß Benutzereingabe bestimmen
Wenn optMale. Wert = True Dann sht. Bereich("g" & letzte Zeile).Wert = "Männlich"
Wenn optFemale. Wert = True Dann sht. Bereich("g" & letzte Zeile).Wert = "Weiblich"
'Ein Meldungsfeld anzeigen, falls der Benutzer das Optionsfeld Ja auswähltWenn optJa. Wert = True Then
MsgBox "Bitte wählen Sie unten die Zahlungsdetails aus"
Anders:
Sub beendenEnde Wenn
End Sub
Machen Sie sich keine Sorgen, wenn Sie sich nicht sicher sind, welche Teile oder einer der Codes bedeuten. Wir erklären es ausführlich im nächsten Abschnitt.
Automatisierter Formularcode erklärt
Die Textfelder enthalten eine Mischung aus Text und numerischen Werten, daher ist es wichtig, die Eingabe des Benutzers einzuschränken. Die Anmeldenummer, Studenten ID, Zeitalter, Telefon, Kurs-ID, und Kursdauer sollte nur Zahlen enthalten, während der Rest Text enthält.
Mit einem WENN -Anweisung löst der Code Fehler-Popups aus, wenn der Benutzer einen Zeichen- oder Textwert in eines der numerischen Felder eingibt.
Da die Fehlervalidierungen vorhanden sind, müssen Sie die Textfelder mit den Blattzellen verknüpfen.
Die letzte Reihe Variablen berechnen die letzte ausgefüllte Zeile und speichern die Werte in ihnen für die dynamische Verwendung.
Abschließend werden die Werte aus den Textfeldern in die verknüpfte Excel-Tabelle eingefügt.
Löschen Sie Formular- und Exit-Button-Codes
In dem klar klicken, müssen Sie den Code schreiben, um die vorhandenen Werte aus dem Benutzerformular zu löschen. Dies kann auf folgende Weise erfolgen:
Mit mir
.txtBewerbungsNr. Wert = ""
.txtStudentID.Value = ""
..txtName. Wert = ""
.txtAlter. Wert = ""
.txtAdresse. Wert = ""
.txtTelefon. Wert = ""
.txtStadt. Wert = ""
.txtLand. Wert = ""
.txtDOB.Wert = ""
.txtZip. Wert = ""
.txtNationalität. Wert = ""
.txtKurs. Wert = ""
.txtCourseID.Value = ""
.txtAnmeldestart. Wert = ""
.txtenrollmentend. Wert = ""
.txtKursdauer. Wert = ""
.txtAbt. Wert = ""
.cmbZahlungsmodus. Wert = ""
.cmbZahlung. Wert = ""
.optFemale. Wert = Falsch
.optMale. Wert = Falsch
.optJa. Wert = Falsch
.optNr. Wert = Falsch
Ende mit
In dem Ausfahrt Geben Sie den folgenden Code ein, um das Benutzerformular zu schließen.
Privater Unterbefehl CommandButton5_Click()
Entlade mich
End Sub
Als letzten Schritt müssen Sie ein paar letzte Codeteile eingeben, um die Dropdown-Werte für die Kombinationsfelder (innerhalb der Zahlungsrahmen) zu erstellen.
Privates Sub-UserForm_Activate()
Mit cmbPayment
.Klar
.Artikel hinzufügen ""
.AddItem "Ja"
.AddItem "Nein"
Ende mit
Mit cmbPaymentMode
.Klar
.Artikel hinzufügen ""
.AddItem "Cash"
.AddItem "Karte"
.AddItem "Prüfen"
Ende mit
End Sub
VBA-Automatisierung erleichtert die Arbeit
VBA ist eine facettenreiche Sprache, die vielen Zwecken dient. Benutzerformulare sind nur ein Aspekt in VBA – es gibt viele andere Anwendungen wie das Konsolidieren von Arbeitsmappen und Arbeitsblättern, das Zusammenführen mehrerer Excel-Tabellen und andere praktische Automatisierungsanwendungen.
Unabhängig vom Automatisierungsziel ist VBA der Aufgabe gewachsen. Wenn Sie weiter lernen und üben, gibt es keinen Aspekt Ihres Arbeitsablaufs, den Sie nicht verbessern können.
Das Zusammenführen von Daten aus mehr als einem Excel-Blatt in derselben Arbeitsmappe ist ein echtes Problem... bis Sie VBA-Makros verwenden.
Lesen Sie weiter
- Programmierung
- Produktivität
- Visual Basic-Programmierung
- Microsoft Excel
Gaurav Siyal hat zwei Jahre Erfahrung als Autor und hat für eine Reihe von Unternehmen für digitales Marketing und Software-Lebenszyklusdokumente geschrieben.
Abonniere unseren Newsletter
Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!
Klicken Sie hier, um sich anzumelden