Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


387 / 13645 ツリー ←次へ | 前へ→

【80655】UserFormによる編集について tarutaru 19/3/28(木) 21:14 質問[未読]
【80656】Re:UserFormによる編集について マナ 19/3/28(木) 21:46 発言[未読]
【80657】Re:UserFormによる編集について Jaka 19/3/28(木) 23:05 発言[未読]
【80658】Re:UserFormによる編集について tarutaru 19/3/29(金) 4:18 質問[未読]
【80661】Re:UserFormによる編集について マナ 19/3/29(金) 19:59 発言[未読]
【80686】Re:UserFormによる編集について [名前なし] 19/4/6(土) 7:53 お礼[未読]

【80655】UserFormによる編集について
質問  tarutaru  - 19/3/28(木) 21:14 -

引用なし
パスワード
   すいません。
またお世話になります。

編集用userformを作成しました。

内容は、sheet1に入力されているデータを、編集用UserFormの各Boxに呼び出して、文字や数値を変更するとその内容がSheet1に反映されるといったものです。

Sheet1には「検索ボタン」を配置しており、条件入力後、押すことで該当データが抽出され、抽出されたデータのみを編集用UserFormに表示されるようにしたいと思います。

検索条件(絞込み)によっては複数の該当データが抽出(sheet1に表示)されることになりますが、その場合、編集用UserFormに「前ボタン」、「次ボタン」を配置することで移動できるようにしたいと思っています。

sheet1(データ)
Range("B3").Value = 氏 名
Range("C3").Value = 住 所
Range("D3").Value = 生年月日
Range("E3").Value = 職 業

編集用UserForm
TextBox1 = 氏 名
TextBox2 = 住 所
TextBox3 = 生年月日
ComboBox1= 職 業  

sheet1に、「編集ボタン」を配置、編集用UserFormが立ち上がるようにしています。

また、編集用UserFormに「前ボタン」、「次ボタン」も配置したのですが、移動については

Private Sub 次ボタン_Click()
 
  行 = 行 + 1
 
 Worksheets("sheet1").Activate
 Worksheets("sheet1").Cells(行, 2).Select
 
 If 行 >= 1000 Then(入力データを1000までとした場合)
  Me.次ボタン.Enabled = False
 Else
  Me.前ボタン.Enabled = True
  Me.次ボタン.Enabled = True
 End If
  
End Sub

Private Sub 前ボタン_Click()

  行 = 行 - 1
 
 Worksheets("sheet1").Activate
 Worksheets("sheet1").Cells(行, 2).Select
 
 If 行 <= 3 Then
  Me.前ボタン.Enabled = False
 Else
  Me.前ボタン.Enabled = True
  Me.次ボタン.Enabled = True
 End If
    
End Sub

このような構文でよろしいのでしょうか?

よろしくお願いいたします。

【80656】Re:UserFormによる編集について
発言  マナ  - 19/3/28(木) 21:46 -

引用なし
パスワード
   ▼tarutaru さん:

念のため、確認ですが
「フォーム」という機能があるのですが
これでは、不十分ということでしょうか。

【80657】Re:UserFormによる編集について
発言  Jaka  - 19/3/28(木) 23:05 -

引用なし
パスワード
   前とか次とかはよく解らないけど、

ControlSource をいじってやれば、
セルの内容がテキストボックスに反映されます。
セルの内容を変えれば、すぐテキストボックスに反映。
テキストボックスの内容を変えれば、すぐにセルに反映。

Textbox1.ControlSource="Sheet1!A1"

【80658】Re:UserFormによる編集について
質問  tarutaru  - 19/3/29(金) 4:18 -

引用なし
パスワード
   マナ様

今回もよろしくお願いいたします。

Jaka様

アドバイスありがとうございます。

すいません。説明が不足しておりました。

今作成しているものは、UserFormを2つ用意しており、UserForm1を入力用、UserForm2を編集用としています。

入力用は問題なくSheet1(データ表)に転記できており、そのSheet1上に以前マナ様からアドバイス頂いたフィルタオプションを用意し、データが抽出できるようにしてあります。

その抽出されたSheet1上のデータを、編集用(UserForm2)に反映したいのですが、反映の仕方というのが、例えば、抽出されたデータが10件(行)あるとすれば、まず先頭行の1件目が編集用(UserForm2)を起動した時に表示され、その編集用に用意した「前へボタン」と「次へボタン」で10件(行)分のデータが編集用(UserForm2)に表示され、各Boxの内容を変更し決定すると、Sheet1(データ表)に転記されるようにしたいと思っています。

また、1件目のデータが編集用(UserForm2)に表示された場合、「前へボタン」がFalseになるようにしたいとも思っています。

Jaka様からアドバイス頂いた「Textbox1.ControlSource="Sheet1!A1"」を試したのですが、上手くいきませんでした。

今回もお手数をおかけしますが、よろしくお願いいたします。

【80661】Re:UserFormによる編集について
発言  マナ  - 19/3/29(金) 19:59 -

引用なし
パスワード
   ▼tarutaru さん:

ユーザーフォームではなく
編集用のシートを用意してはどうでしょうか。
シートなら、10行ずつ抽出も関数で簡単にできませんか。
編集後、sheet1に戻すマクロも簡単ですよね。

【80686】Re:UserFormによる編集について
お礼  [名前なし]  - 19/4/6(土) 7:53 -

引用なし
パスワード
   マナ様

連絡が遅くなり大変申し訳ありませんでした。

アドバイスありがとうございました。
ご教示いただいた方法も試しながら作成していきたいと思います。

今後もよろしくお願いいたします。

387 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free