2017-11-11 6 views
0

Ich arbeite gerade an einem Benutzerformular, um eine Bestellung für Benutzer eines Unternehmens zu erstellen, um sie an meine Abteilung zu senden.Wie man ein Etikett und eine Textbox basierend auf der Auswahl eines Kombinationsfelds in einem Benutzerformular in Excel hinzufügt

Im Moment bin ich zum Stillstand gekommen, da ich mich anstrengen muss, das Folgende zu erarbeiten.

Ich habe eine Combobox, die eine Liste von Produkten hat, die unser Geschäft anbietet. Basierend auf der Auswahl möchte ich in der Lage sein, Etiketten und Textfelder hinzuzufügen, für die der Benutzer beispielsweise Daten eingeben muss.

Wenn diese Auswahl im Kombinationsfeld dann Namen eingeben, erforderlich Datum, Ort des Benutzers usw.

auch auf die Combobox Auswahl dies muss spezifisch sein.

Jede Hilfe wäre sehr geschätzt :)

UPDATE

Apologies, wie ich keinen Code für diese Funktion hatte ich nicht hier hinzugefügt haben ist der Code, den ich habe.

Private Sub CommandButton1_Click() 
Windows("RFS User Form Mock.xlsm").Visible = True 
End Sub 

Private Sub LegendDefinition_Change() 
LegendDefinition.Locked = True 
End Sub 

Private Sub RequestList_Change() 
Dim i As Long, LastRow As Long 
    LastRow = Sheets("Definition").Range("A" & Rows.Count).End(xlUp).Row 
    For i = 2 To LastRow 
    If Sheets("Definition").Cells(i, "A").Value = (Me.RequestList) Then 
    Me.DefinitionBox = Sheets("Definition").Cells(i, "B").Value 
    End If 
    Next 
End Sub 

Private Sub RequestList_DropButtonClick() 
Dim i As Long, LastRow As Long 
    LastRow = Sheets("Definition").Range("A" & Rows.Count).End(xlUp).Row 
    If Me.RequestList.ListCount = 0 Then 
    For i = 2 To LastRow 
    Me.RequestList.AddItem Sheets("Definition").Cells(i, "A").Value 
    Next i 
    End If 
End Sub 

Sub UserForm_Initialize() 
    SiteList.List = Array("Birmingham", "Bristol", "Cardiff", "Chelmsford", "Edinburgh", "Fenchurch Street", "Glasgow", "Guernsey", "Halifax", "Homeworker", "Horsham", "Ipswich", "Jersey", "Leeds", "Leicester", "Lennox Wood", "Liverpool", "Manchester", "Peterborough", "Redhill", "Sunderland", "Madrid") 
End Sub 

Private Sub VLookUp_Change() 
VLookUp.Locked = True 
End Sub 

Antwort

0

Wenn eine Frage veröffentlichen, Sie werden voraussichtlich zeigen, einige Codes liefern, wo Sie versuchen, stehen das Problem zu lösen. Hier ist dennoch eine kurze Demo, die Ihnen einen Startpunkt geben wird.

Erstellen Sie ein neues UserForm und fügen Sie eine Combobox, ein Label und ein Textfeld ein; Stellen Sie sicher, dass sie ComboBox1, Label1 bzw. TextBox1 heißen.

Dann diesen Code in das Modul des Formulars einfügen:

Option Explicit 

Private Sub ComboBox1_Change() 
    Dim bVisible As Boolean 

    'Only show the label and the textbox when the combo list index is 1, which corresponds to "Item 2". 
    'Note: bVisible = (ComboBox1.Text = "Item 2") would also work. 
    bVisible = (ComboBox1.ListIndex = 1) 
    Label1.Visible = bVisible 
    TextBox1.Visible = bVisible 
End Sub 

Private Sub UserForm_Layout() 
    'Populate the combo. 
    ComboBox1.AddItem "Item 1", 0 
    ComboBox1.AddItem "Item 2", 1 

    'Note: the code below could be removed by setting the corresponding 
    'design-time properties from the form designer. 
    ComboBox1.Style = fmStyleDropDownList 
    Label1.Visible = False 
    TextBox1.Visible = False 
End Sub 

Dann F5 drücken Sie die Form zu zeigen. Sie werden bemerken, dass das Label und die Textbox nur sichtbar sind, wenn die Combo "Item 2" anzeigt. Die Sichtbarkeitseinstellung wird im Ereignishandler ComboBox1_Change durchgeführt.

Wenn Sie je nach Wert Ihres Combos zahlreiche Steuerelemente ein- und ausblenden möchten, können Sie sie in eine oder mehrere Frame Steuerelemente gruppieren und stattdessen diese Rahmen ein-/ausblenden.

+0

Wird der Code hinzugefügt? Ich würde ein Bild von der Benutzeroberfläche setzen, aber ich habe nicht genug rep. Auch ich verwende VLookup mit der gleichen Combobox. Die Combobox heißt RequestList. –

Verwandte Themen