Zum Hauptinhalt springen

Erstellen eines benutzerdefinierten Formulars mit Dropdown-Liste in VBA Excel

Microsoft Excel ist eines der beliebtesten Tabellenkalkulationssoftware. Zusammen mit einer Vielzahl von Funktionen bietet Excel auch die Möglichkeit, benutzerdefinierte Formulare zu erstellen, wodurch Workflows effizienter und benutzerfreundlicher werden. In diesem Artikel erfahren Sie, wie Sie mithilfe von VBA (Visual Basic for Applications), der integrierten Programmiersprache von Excel, ein benutzerdefiniertes Dropdown-Formular erstellen.

Ein Benutzerformular ist eine Art Schnittstelle, die es Benutzern ermöglicht, mit Daten zu interagieren und bestimmte Aktionen auszuführen. Wir werden auf viele Situationen stoßen, in denen Formulare verwendet werden müssen, um die Datenerfahrung zu verbessern. Wenn Sie beispielsweise über eine große Datenliste verfügen, können Sie ein Dropdownmenü erstellen, um die gewünschten Informationen schnell und einfach zu finden.

VBA ist eine Programmiersprache, die Teil der Microsoft Office-Suite ist und es Ihnen ermöglicht, Makros zu erstellen und Aufgaben zu automatisieren. In Excel kann VBA verwendet werden, um benutzerdefinierte Formulare zu erstellen, Schaltflächen und Dropdown-Listen hinzuzufügen und die mit diesen Elementen verknüpften Daten zu verarbeiten. In diesem Artikel konzentrieren wir uns darauf, ein Dropdown-Formular zu erstellen, mit dem Benutzer Optionen aus einer vordefinierten Liste auswählen können.

Erstellen eines benutzerdefinierten Formulars

In VBA Excel können Sie benutzerdefinierte Formulare erstellen, mit denen Benutzer mit Makros und Makros interagieren können. Ein benutzerdefiniertes Formular kann verschiedene Steuerelemente wie Schaltflächen, Textfelder, Bildlaufleisten und Dropdown-Listen enthalten.

Führen Sie die folgenden Schritte aus, um ein benutzerdefiniertes Formular in VBA Excel zu erstellen:

  1. Öffnen Sie den VBA-Editor durch Drücken der Taste Alt+F11.
  2. Klicken Sie im VBA-Editor im Menü auf die Registerkarte Einfügen (Insert) und dann wählen Sie Benutzerdefiniertes Formular (UserForm).
  3. Im daraufhin angezeigten Entwurfsfenster des benutzerdefinierten Formulars können Sie verschiedene Steuerelemente hinzufügen, indem Sie sie auf das Formular ziehen.
  4. Passen Sie die Eigenschaften von Steuerelementen mithilfe der Eigenschaftenleiste an, die am unteren Rand des VBA-Editors angezeigt wird.
  5. Schreiben Sie Code, um Ereignisse zu behandeln, die auf dem Formular auftreten können, z. B. das Klicken auf eine Schaltfläche oder das Ändern eines Werts im Eingabefeld.
  6. Speichern Sie Ihre Arbeit, und schließen Sie den VBA-Editor.

Nachdem Sie ein benutzerdefiniertes Formular erstellt haben, steht es für die Verwendung in Ihrer Excel-Arbeitsmappe zur Verfügung. Sie können das Formular aufrufen, indem Sie dem Arbeitsblatt eine Schaltfläche hinzufügen oder es als Dialogfeld zum Eingeben und Anzeigen von Daten verwenden.

Durch das Erstellen eines benutzerdefinierten Formulars können Sie die Benutzeroberfläche für Ihre Makros benutzerfreundlicher und benutzerfreundlicher gestalten. Sie können mit Ihrem Code interagieren, indem sie Daten eingeben und Bearbeitungsergebnisse erhalten. Dies ist eine großartige Möglichkeit, die Benutzerfreundlichkeit Ihrer Makros zu verbessern und sie professioneller zu machen.

Erstellen eines Formulars

Führen Sie die folgenden Schritte aus, um ein benutzerdefiniertes Formular in VBA Excel zu erstellen:

  1. Öffnen Sie den Visual Basic-Editor durch Drücken einer Tastenkombination Alt + F11.
  2. Wählen Sie im Editorfenster das gewünschte Projekt im Projektbaum auf der linken Seite aus.
  3. Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Einsetzen ->Form.
  4. Ordnen Sie die gewünschten Steuerelemente auf dem Formular an, z. B. Schaltflächen, Textfelder, Dropdown-Listen usw.
  5. Legen Sie die Eigenschaften von Steuerelementen und Formularen wie gewünscht fest.
  6. Schreiben Sie Code, um Steuerelementereignisse zu behandeln.

Sie können für jedes Steuerelement in einem Formular einen eindeutigen Namen und Eigenschaften festlegen, z. B. Größe, Position, Farbe, Schriftart usw. Diese Eigenschaften können über Elementeigenschaften oder programmgesteuert über Code festgelegt werden.

Darüber hinaus gibt es in VBA Excel verschiedene Steuerelementereignisse, mit denen Sie die Interaktivität eines Formulars erstellen können. Zum Beispiel wird das Click-Ereignis für eine Schaltfläche ausgelöst, wenn Sie darauf klicken, das Change-Ereignis für eine Dropdown-Liste wird ausgelöst, wenn sich das ausgewählte Element ändert usw.

Um Code für die Verarbeitung von Steuerelementereignissen zu schreiben, müssen Sie das gewünschte Element im Formular auswählen, mit der rechten Maustaste klicken und auswählen Kode. Sie können dann ein Ereignis aus der Liste auswählen und den gewünschten Code in das sich öffnende Fenster schreiben.

Anpassen der Dropdown-Liste

Definieren von Listenwerten

Der erste Schritt besteht darin, die Werte zu definieren, die in der Dropdown-Liste angezeigt werden. Sie können dazu ein Array von Werten verwenden. Zum Beispiel:

Dim values() As Variantvalues = Array("Значение 1", "Значение 2", "Значение 3")

Hinzufügen von Werten zu einer Dropdown-Liste

Als nächstes müssen Sie der Dropdown-Liste bestimmte Werte hinzufügen. Dazu wird die RowSource-Eigenschaft verwendet. Zum Beispiel:

UserForm1.ComboBox1.RowSource = "Sheet1!A1:A3"

Wo UserForm1 ist.ComboBox1 ist ein Dropdown-Objekt und Sheet1!A1:A3 - Der Zellbereich, der die Werte der Liste enthält.

Wenn Sie ein Array von Werten anstelle eines Zellbereichs verwenden, sieht der Code folgendermaßen aus:

UserForm1.ComboBox1.List = values

Anzeigen von Listenwerten

Standardmäßig werden in der Dropdown-Liste nur Werte als Text angezeigt. Sie können jedoch festlegen, dass der Wert und der zugehörige Text angezeigt werden. Dazu wird die ColumnCount-Eigenschaft verwendet. Zum Beispiel:

UserForm1.ComboBox1.ColumnCount = 2

Wenn Sie in diesem Fall einen Wert aus einer Liste auswählen, wird der Wert aus der ersten Spalte der Liste in die Zelle eingefügt, und der Text aus der zweiten Spalte wird für den ausgewählten Wert angezeigt.

Auswählen eines Listenwerts

In VBA Excel können Sie den ausgewählten Wert mithilfe der Value-Eigenschaft aus einer Dropdown-Liste abrufen. Zum Beispiel:

Dim selectedValue As StringselectedValue = UserForm1.ComboBox1.Value

In diesem Fall wird der ausgewählte Wert in der Variablen SelectedValue gespeichert.

Jetzt wissen Sie, wie Sie eine Dropdown-Liste in einem benutzerdefinierten Formular in VBA Excel einrichten. Diese Einstellungen ermöglichen es Ihnen, ein benutzerfreundliches, interaktives Formular für Benutzer zu erstellen.

Programmieren von Aktionen bei der Auswahl eines Listenelements

Wenn ein Benutzer ein Element aus einer Dropdown-Liste auswählt, können Sie bestimmte Aktionen festlegen, die als Reaktion auf diese Aktion auftreten sollen. In VBA können Sie diese Aktionen einfach mithilfe eines Listenwertänderungsereignisses programmieren.

Hier ist ein Beispielcode, der ausgeführt wird, wenn Sie ein Element aus einer Liste auswählen:

    Erstellen Sie eine Prozedur, die ausgeführt wird, wenn ein Listenwert geändert wird. Zum Beispiel:

Private Sub ComboBox1_Change()' Код, который выполнится при выборе элемента из спискаEnd Sub
Range("A1").Value = ComboBox1.Value

Das Programmieren von Aktionen bei der Auswahl eines Listenelements in VBA Excel mit einem Listenwertänderungsereignis ist daher eine einfache und bequeme Möglichkeit, einem benutzerdefinierten Formular Interaktivität und Funktionalität hinzuzufügen.

Hinzufügen einer Schaltfläche zum Senden von Daten

Sie müssen eine Schaltfläche zum Senden von Daten aus dem Formular hinzufügen, damit der Benutzer Daten aus dem Formular senden kann. Erstellen Sie dazu ein input-Element vom Typ submit . Im Folgenden finden Sie den Code, den Sie unserem HTML-Dokument hinzufügen müssen:

Wenn Sie auf diese Schaltfläche klicken, werden die Daten aus dem Formular an den Server gesendet. Sie können den Text auf der Schaltfläche auch ändern, indem Sie den Wert des Attributs value ersetzen.

Speichern von Daten in einer Excel-Tabelle

Nachdem der Benutzer alle Felder im benutzerdefinierten Formular ausgefüllt hat, müssen die Daten in einer Excel-Tabelle gespeichert werden. Dazu können Sie den folgenden Algorithmus verwenden:

  1. Greifen Sie auf das aktive Arbeitsblatt in der Excel-Tabelle zu.
  2. Bestimmen Sie die Position, an die die Daten geschrieben werden sollen.
  3. Daten in die entsprechenden Zellen schreiben.
  4. Änderungen an der Tabelle speichern.

Um zu beginnen, öffnen wir bei Bedarf die Excel-Tabelle, mit der wir arbeiten werden:

Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.Worksheet'Sоздаем новый экземпляр приложения ExcelSet xlApp = New Excel.Application'Открываем существующий файл или создаем новыйSet xlBook = xlApp.Workbooks.Open("C:\Путь\к\файлу.xlsx")Set xlSheet = xlBook.Worksheets("Лист1") 'Устанавливаем активный лист

Als nächstes definieren wir die Position, an der die Daten geschrieben werden sollen. Wir können die aktuell aktive Zeile verwenden, um die Daten oben in der Tabelle zu schreiben:

Dim lastRow As LonglastRow = xlSheet.Cells(xlSheet.Rows.Count, 1).End(xlUp).Row + 1 'Определяем текущую активную строку

Jetzt können wir die Werte aus dem Formular in die entsprechenden Tabellenzellen schreiben. Angenommen, die Werte werden in den Variablen value1 , value2 und value3 gespeichert :

xlSheet.Cells(lastRow, 1).Value = value1 'Записываем значение value1 в ячейку A(lastRow)xlSheet.Cells(lastRow, 2).Value = value2 'Записываем значение value2 в ячейку B(lastRow)xlSheet.Cells(lastRow, 3).Value = value3 'Записываем значение value3 в ячейку C(lastRow)

Um die Änderungen an der Tabelle zu speichern, müssen Sie schließlich den Zugriff auf Excel schließen:

xlBook.Close SaveChanges:=True 'Сохраняем изменения в файлеxlApp.Quit 'Закрываем приложение Excel

Nach jedem Ausfüllen des Formulars und Speichern der Daten werden nun alle Werte in die nächste Zeile der Tabelle eingefügt.

Es ist wichtig zu beachten, dass beim Schreiben von Daten in eine Excel-Tabelle das Format der Werte berücksichtigt werden muss. Sie können beispielsweise das Format "Allgemein" für numerische Werte und das Format "Langes Datum" für ein Datum verwenden. Dazu können Sie die NumberFormat-Eigenschaft der Zelle verwenden:

xlSheet.Cells(lastRow, 1).NumberFormat = "Общий" 'Устанавливаем формат ячейки A(lastRow) как "Общий"xlSheet.Cells(lastRow, 2).NumberFormat = "Длинная дата" 'Устанавливаем формат ячейки B(lastRow) как "Длинная дата"

Jetzt wissen Sie, wie Sie Daten in einer Excel-Tabelle mithilfe eines benutzerdefinierten Formulars in VBA Excel speichern.

Testen und Debuggen eines Formulars

Nachdem Sie ein benutzerdefiniertes Formular mit einer Liste erstellt haben, können Sie es testen und debuggen. Es ist wichtig sicherzustellen, dass das Formular ordnungsgemäß funktioniert und mit den Daten in der Tabelle interagiert.

Stellen Sie sicher, dass alle Formularelemente ordnungsgemäß konfiguriert sind, bevor Sie mit dem Testen beginnen. Stellen Sie sicher, dass die Dropdown-Liste alle gewünschten Auswahlmöglichkeiten enthält, und legen Sie außerdem einen aktiven Standardwert fest.

Führen Sie danach ein benutzerdefiniertes Formular aus und testen Sie dessen Funktionalität. Stellen Sie sicher, dass Sie eine der Optionen aus der Dropdown-Liste auswählen und das aktuelle Ergebnis im entsprechenden Feld oder in der entsprechenden Zelle erhalten können.

Achten Sie beim Testen darauf, dass das Formular mit anderen Elementen interagiert, z. B. einer Berichtschaltfläche oder einer Schaltfläche zum Aktualisieren von Daten in einer Tabelle. Stellen Sie sicher, dass das Formular korrekt mit ihnen interagiert und die erforderlichen Aktionen ausführt.

Wenn Sie während des Testvorgangs Fehler oder Probleme im Zusammenhang mit der Funktionsweise des Formulars feststellen, müssen Sie mit dem Debuggen des Formulars beginnen. Verwenden Sie dazu die Debugging-Tools in Excel VBA.

Mit den Debugtools können Sie Code Schritt für Schritt ausführen, Variablenwerte überwachen, Haltepunkte festlegen, die Codeausführung überwachen und Fehler beheben.

Beim Debuggen eines Formulars ist es wichtig sicherzustellen, dass der Code korrekt ausgeführt wird und alle Variablen die richtigen Werte erhalten. Wenn Fehler auftreten, müssen Sie sie erkennen und korrigieren.

Nachdem das Debugging abgeschlossen ist, ist es wichtig, das Formular erneut zu testen, um sicherzustellen, dass es fehlerfrei funktioniert und alle Funktionen ordnungsgemäß funktionieren.

Das Testen und Debuggen des Formulars hilft, Fehler zu beheben und sicherzustellen, dass das Formular fehlerfrei funktioniert. Die Test- und Debugging-Phasen sind ein wichtiger Teil des Prozesses zum Erstellen eines benutzerdefinierten Formulars und sorgen dafür, dass es ordnungsgemäß funktioniert.