Excel-Benutzerformulare - Excel-Tipps

Inhaltsverzeichnis
In Excel 97 wurden neue Benutzerformulare eingeführt. Bringen Sie mir auf Englisch bei, wie man ein Listenfeld erstellt und verwendet.

MrExcel hat kürzlich eine benutzerdefinierte Anwendung für einen unserer Leser ausgefüllt. In dieser Excel-App würde der Benutzer 150 Datenpunkte für eine bestimmte Teilenummer auf dem Blatt eingeben.

1. Auf Knopfdruck werden diese Teilenummer und die zugehörigen Datenwerte in eine Datenbank auf Sheet2 übernommen. Das war in Ordnung, aber dann brauchten wir eine Möglichkeit für den Benutzer, einen Datensatz aus Blatt 2 aufzurufen, damit er die Einträge überprüfen konnte. Ich wollte dem Benutzer erlauben, ein Formular mit einem Dropdown-Feld zu öffnen, in dem alle Elemente auf dem Blatt angezeigt werden

2. Der Benutzer könnte durchblättern, ein Element auswählen und dann diese Werte von Blatt 2 auf Blatt 1 ziehen.

Wie viele von Ihnen habe ich angefangen, Excel-Makros in Excel 5.0 zu schreiben. Dieser ganze Makro-Editor in Excel 97 ist ein bisschen einschüchternd. Für den Tipp dieser Woche zeige ich Ihnen Schritt für Schritt, wie Sie das Listenfeld für dieses Projekt erstellen. Der Fokus dieser Woche liegt nur auf dem Kombinationsfeld. Die Zielgruppe ist jemand, der die Grundlagen von Excel-Makros kennt, aber noch nie ein Formular für die Interaktion mit einem Makro verwendet hat.

Erster Schritt: Ich habe die vorhandenen Makros so geändert, dass das Makro beim Hinzufügen eines Datensatzes zu Sheet2 den Bereich benennt, der die Teilenummern mit dem Namen "PartList" enthält. In Zelle A1 befindet sich eine Überschrift mit dem ersten Element in Zelle A2. Ich habe den Befehl End verwendet, um die letzte Zeile zu finden:

LastRow = Range("A6000").End(xlUp).Row ActiveWorkbook.Names.Add Name:="PartList", RefersTo:="=Sheet2!$A$2:$A$" & LastRow

Zweiter Schritt: Layout des Listenfeldformulars. Folge diesen Schritten:

  • Starten Sie den Visual Basic-Editor, indem Sie Alt-F11 drücken
  • Wählen Sie im Menü Einfügen> Benutzerformular. Der Editor sollte Ihnen eine leere UserForm1 geben.
  • Wenn das Feld Properties-UserForm1 in der unteren linken Ecke nicht angezeigt wird, klicken Sie auf das Symbol "Eigenschaftenfenster". Es sieht aus wie eine Hand mit einem Finger, der auf ein weißes Blatt zeigt.
  • Der 4. Eintrag im Eigenschaftenfenster ist Beschriftung. Im Moment lautet die Beschriftung UserForm1. Klicken Sie im Eigenschaftenfenster auf das Feld rechts neben Beschriftung und geben Sie einen neuen Titel für das Formular ein. Ich rief meine "Wählen Sie eine zu überprüfende Teilenummer aus". Ich habe alle anderen Eigenschaften für das Formular in ihrem Standardzustand belassen.
    Listenfeld mit Userform erstellen
  • Klicken Sie erneut auf eine beliebige Stelle im Benutzerformular, um die Controls Toolbox anzuzeigen.
  • Wählen Sie in der Steuerelement-Toolbox den Buchstaben A aus. Klicken und ziehen Sie, um ein Beschriftungsfeld oben im Formular zu erstellen. Standardmäßig wird eine Beschriftung von Label1 verwendet. Klicken Sie erneut in das Textfeld und Sie können die Beschriftung bearbeiten. Geben Sie dem Benutzer hier Anweisungen: "Wählen Sie ein Element aus der folgenden Liste aus und klicken Sie auf OK, um die Werte zu überprüfen."
  • Klicken Sie auf das Formular, jedoch außerhalb des Beschriftungsfelds, und Sie sehen die Steuerungs-Toolbox erneut. Das 4. Element in der oberen Reihe ist ein Kombinationsfeld-Tool. Klicken Sie darauf und ziehen Sie das Benutzerformular hinein, um ein Kombinationsfeld zu erstellen. Hier erscheint die Liste der Teilenummern. Der Standardname ist ComboBox1.
    Combobox-Eigenschaften
  • Das Eigenschaftenfenster zeigt Ihnen nun die Eigenschaften für ComboBox1. Scrollen Sie durch die Eigenschaften, bis Sie die RowSource-Eigenschaft sehen. Geben Sie für die RowSource-Eigenschaft = Sheet2! PartList ein
  • Sie können jetzt einen Schnelltest durchführen, um sicherzustellen, dass alles ordnungsgemäß funktioniert. Klicken Sie auf die Titelleiste Ihres Benutzerformulars, um das gesamte Formular auszuwählen. Klicken Sie nun auf das Symbol "Wiedergabe" (es sieht aus wie die Wiedergabetaste Ihres Videorecorders). Sie kehren zu Ihrer Excel-Arbeitsmappe zurück und haben unser einfaches Benutzerformular. Wenn Sie auf die Dropdown-Liste Teilenummer klicken, sollte eine Liste der gültigen Teilenummern angezeigt werden. Wählen Sie eine aus, und sie bleibt im Kombinationsfeld. Bisher nicht zu aufregend. Klicken Sie auf das kleine X in der oberen rechten Ecke, um das Feld zu schließen.
  • Kehren Sie zum Visual Basic-Editor zurück. Klicken Sie auf das Benutzerformular, um die Control Toolbox anzuzeigen. Klicken Sie auf das CommandButton-Werkzeug und zeichnen Sie eine Schaltfläche. Ändern Sie die Beschriftung im Fenster Eigenschaften - CommandButton1 in OK.
  • Zeichnen Sie eine zweite Schaltfläche und beschriften Sie sie mit Abbrechen.
  • Wir sind fast fertig. Lassen Sie uns ein wenig Code an die Schaltfläche Abbrechen binden. Klicken Sie mit der rechten Maustaste auf die Schaltfläche Abbrechen und wählen Sie "Code anzeigen". Der Editor richtet Ihre Sub- und End Sub-Anweisungen ein. Geben Sie zwischen ihnen eine Codezeile ein:
    UserForm1.Hide
  • Ja, das ist alles, was Sie tun müssen, um einer Schaltfläche Code zuzuweisen. Doppelklicken Sie im Projektfenster auf die Wörter UserForm1, um zum Benutzerformular zurückzukehren. (Das Projektfenster wird nicht angezeigt? Klicken Sie auf das Projekt-Explorer-Symbol links neben dem Eigenschaftensymbol.)
  • Um Benutzer form1 zu beenden, lassen Sie uns etwas mit der Schaltfläche OK tun. Wenn der Benutzer auf OK klickt, soll der Wert aus dem Listenfeld in Blatt1 Zelle A2 angezeigt werden, und dann möchte ich ein zuvor geschriebenes Makro namens ReviewItem starten. Klicken Sie mit der rechten Maustaste auf die Schaltfläche OK und wählen Sie Code anzeigen. Geben Sie diesen Code für Private Sub CommandButton1_Click () ein:
    Worksheets("Sheet1").Range("A2") = UserForm1.ComboBox1.Value UserForm1.Hide ReviewItem

Herzliche Glückwünsche! Sie haben Ihr erstes Benutzerformular ausgefüllt. Führen Sie ein Makro mit der folgenden Zeile aus, damit das Formular angezeigt wird:

UserForm1.Show

Das Formular sieht ungefähr so ​​aus:

Fertiges Benutzerformular

Interessante Beiträge...