[[20160924091617]] 『ComboBoxの連動』(俊) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ComboBoxの連動』(俊)

ComboBox1もしくわComboBox2が変更した時に相手を変更したいのですが
何か良いアイディアはありませんか?

Private Sub ComboBox1_Change()

On Error Resume Next

i = Sheets("コード").Range("e:e").Find(ComboBox1).Row
ComboBox2 = Sheets("コード").Cells(i, 1).Value
End Sub

Private Sub ComboBox2_Change()
On Error Resume Next
i = Sheets("コード").Range("a:A").Find(ComboBox2).Row
ComboBox1 = Sheets("コード").Cells(i, 2).Value

 End Sub
よろしくお願いします

< 使用 Excel:Excel2003、使用 OS:WindowsXP >


 相手 とは 何 ですか?
 で、その 相手 の 何 を変更するのですか?

(β) 2016/09/24(土) 09:47


ComboBox1を変更したらComboBox2が変更され
ComboBox2を変更したらComboBox1が変更される様にしたいのです
ComboBox1に商品名ComboBox2にコードがリストとなっており
商品名が変わればコードが変わり
コードが変われば商品名が変わる様にしたいのです
よろしくお願いします
(俊) 2016/09/24(土) 11:14

 ComboBox1 と ComboBox2 、表示しているものは違えど、同じものなんですよね。
 だから同期をとろうとしている?

 それなら、1つのコンボボックスにしておけばいいんですけど、
 コードあるいは名前、いずれでも検索できるようにしておきたいということなんですかね。

 コード シートのレイアウトですけど、1行目が(きっと)タイトル行。
 2行目からデータで、A列が 商品名、E列が コード。COmboBox1もComboBox2 も内容としては1列だけ。

 この理解でOKですか?

 それと、最初のリストのセットですけど、具体的にどうしておられますか?
 それぞれ、単純に RowSource で与えている? あるいは、上から下に AddItem ないしは 1列を Listに格納?
 それとも、検索しやすいように、並び替えたものをセット?

(β) 2016/09/24(土) 12:19


コードあるいは名前、いずれでも検索できるようにしておきたいということです
2行目からデータで、A列が 商品名、E列が コード。COmboBox1もComboBox2 も内容としては1列だけです
それぞれ、 RowSource で与えています
(俊) 2016/09/24(土) 13:40

 たとえばの例です。

 なお、ComboBoxのイベントをClickイベントにしてあります。
 もし、直接入力して指定する場合もあるということなら変更します。
(でも、Changeイベントは適したものではないと思いますので Exit系のイベントで)

 15:53 Initialize を変更しました。

 Private Sub UserForm_Initialize()
    Dim lst As Range

    With Sheets("コード").Range("A1").CurrentRegion
        Set lst = .Resize(.Rows.Count - 1).Offset(1)
    End With
    With ComboBox1
        .RowSource = lst.Columns("A").Address(External:=True)
        .ColumnHeads = True
    End With
    With ComboBox2
        .RowSource = lst.Columns("E").Address(External:=True)
        .ColumnHeads = True
    End With
 End Sub

 Private Sub ComboBox1_Click()
    ComboBox2.ListIndex = ComboBox1.ListIndex
 End Sub

 Private Sub ComboBox2_Click()
    ComboBox1.ListIndex = ComboBox2.ListIndex
 End Sub

(β) 2016/09/24(土) 15:49


βさん ありがとうございました
コードは直接入力しますのでChangeにしたところ
問題なく動作しました

Private Sub ComboBox2_Change()

    ComboBox1.ListIndex = ComboBox2.ListIndex
End Sub
本当にありがとうございました

(俊) 2016/09/24(土) 17:07


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.