2017-11-11 7 views
0

私は現在、userformを使って会社のユーザーが私の部署に送る注文を作成しています。ユーザーフォームのコンボボックスの選択に基づいてラベルとテキストボックスを追加する方法

私は次のことを解決するために苦労している瞬間、私は停止するようになりました。

私は私たちのビジネスが提供する製品のリストを持っているコンボボックスを持っています。選択に基づいて、私は、例えば、ユーザがデータを入力することを要求するラベルおよびテキストボックスを追加できるようにしたい。

コンボボックスのこの選択は、名前、必要な日付、

はまた、これはコンボボックスの選択に固有である必要がありますなど、ユーザーの場所を入力します 場合

任意の助けもいただければ幸いです:)

UPDATE

謝罪を、私はその機能のために任意のコードを持っていなかったとして、私はここでいずれかを追加していない私が持っているコードです。

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 

答えて

0

質問を投稿するときは、問題に対処しようとしている場所を示すコードを入力する必要があります。それにもかかわらず、ここにあなたに出発点を与える短いデモがあります。

新しいユーザーフォームを作成し、その上にコンボボックス、ラベル、およびテキストボックスを配置します。 ComboBox1、Label1、TextBox1という名前になっていることを確認してください。その後

、フォームのモジュールでこのコードを貼り付けます。

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 

次にフォームを表示するにはF5キーを押してください。コンボに「項目2」が表示されている場合にのみ、ラベルとテキストボックスが表示されます。可視性調整は、ComboBox1_Changeイベントハンドラ内で実行されます。

コンボの値に応じて多数のコントロールを表示/非表示にする予定がある場合は、それらのコントロールを1つ以上のコントロールにグループ化し、それらのフレームを表示/非表示にすることができます。

+0

コードが追加されましたか?私は十分な担当者を持っていないが、私はユーザーインターフェイスのイメージを置くだろう。また、私は同じコンボボックスでVLookupを使用しています。コンボボックスはRequestListと呼ばれます。 –

関連する問題