ここから本文です

仕事を効率化するべくVBAユーザーフォーム独学をしている初心者です。

moa********さん

2020/4/2321:54:07

仕事を効率化するべくVBAユーザーフォーム独学をしている初心者です。

1からネットを見ながら学び、ユーザーフォームを使って案件の新規登録するところまではできたのですが、

今、以下のことが出来ません。どなたかお知恵を拝借できませんでしょうか(画面添付有り)。
やりたいこと:登録済みデータを検索し、該当項目のエクセルデータをユーザーフォームに反映した後、変更した内容で再度エクセルシートに上書きする
具体的には
①テキストボックスにいれた名前を検索するとリストボックスに候補が出力される(名前の他、案件番号・枝番号)
②リストボックスに表示された更新したい該当項目を「ダブルクリック」すると当該案件のある行のデータがユーザーフォームに反映(「期」~取組店)
③変更項目を入力し、登録更新ボタンを押下すると内容がリバイスされる

☆ネットで検索して作った状態は以下のとおり
Private Sub 検索_Click()
Dim lastRow As Long
Dim myData, myData2()
Dim i As Long, j As Long, cn As Long

With Worksheets("Sheet1")
lastRow = .Cells(Rows.Count, 1).End(xlUp).Row
myData = .Range(.Cells(1, 1), .Cells(lastRow, 13)).Value
End With

ReDim myData2(1 To lastRow, 1)
For i = LBound(myData) To UBound(myData)
If myData(i, 5) Like "*" & TextBox1.Value & "*" Then
cn = cn + 1
myData2(cn, 1) = myData(i, 5)
End If
Next i

With ListBox1
.ColumnCount = 1
.ColumnWidths = "30"
.List = myData2
End With
End Sub
ここまでやって検索ボタンを押しても何もリストボックスに表示がされず途方にくれています…。


☆(参考)新規登録ボタンを押下のコマンドは以下のとおり(こちらは上手くいっています)
Private Sub cmb新規登録_Click()
Dim a As Range
With Cells(Rows.Count, 2).End(xlUp)

.Offset(1, -1).Value = txt1期.Value
.Offset(1, 1).Value = txt3枝.Value
.Offset(1, 2).Value = txt4到着日.Value
.Offset(1, 3).Value = cbo1事ロ担当.Value
.Offset(1, 6).Value = txt6顧客名.Value
.Offset(1, 8).Value = cbo2獲得店.Value
.Offset(1, 9).Value = cbo3取組店.Value
.Offset(1, 0).Value = txt2No.Value
End With
End Sub

Rows.Count,End With,ReDim myData2,OFFSET,End Sub

閲覧数:
33
回答数:
1
お礼:
100枚

違反報告

回答

1〜1件/1件中

プロフィール画像

カテゴリマスター

tra********さん

2020/4/2400:05:19

2カ所変更

1)
ReDim myData2(1 To lastRow, 1)

ReDim myData2(1 To lastRow, 0)

2)
myData2(cn, 1) = myData(i, 5)

myData2(cn, 0) = myData(i, 5)

配列の文法を復習すべきですね。

  • 質問者

    moa********さん

    2020/4/2407:15:35

    回答ありがとうございます。リストボックスに検索したデータが表示されました。不勉強で申し訳ありません。
    検索されたデータのセルをアクティブにするにはどうすればよいのでしょうか…。

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる