Excel VBA質問箱 IV

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

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


10936 / 13644 ツリー ←次へ | 前へ→

【19075】別シートに転記するには KAZU 04/10/20(水) 22:41 質問[未読]
【19077】Re:別シートに転記するには まー坊 04/10/21(木) 0:00 発言[未読]
【19088】Re:別シートに転記するには kazu 04/10/21(木) 13:24 質問[未読]
【19078】Re:別シートに転記するには row 04/10/21(木) 0:08 発言[未読]
【19079】Re:別シートに転記するには ショボタン 04/10/21(木) 1:20 回答[未読]
【19092】Re:別シートに転記するには kazu 04/10/21(木) 14:07 質問[未読]

【19075】別シートに転記するには
質問  KAZU  - 04/10/20(水) 22:41 -

引用なし
パスワード
   Sheet1に1000件以上のデータが入力されています。B列に数値が入力されています。
Sheet2の30行目にSheet1と同じ項目の内容を入力しSheet2 B列の数値と一致するSheet1の行にコピーするにはどうしたらいいのでしょうか。よろしくお願いします。
  Sheet1           Sheet2       Sheet1
a  b  c  d  e     a  b  c d e     a  b  c d e
1 101 r  y  t  →  1 101 u p y  →  1 101 u p y
2 102 u  u  o                     
3 103 t  i  p
4 104 i  j  o
5 105 o  n  u 



【19077】Re:別シートに転記するには
発言  まー坊  - 04/10/21(木) 0:00 -

引用なし
パスワード
   ▼KAZU さん:
問い合わせ内容がよくわかりませんので確認させてください。
仕様は以下のとおりであってますか?
1.sheet1にデータがあるB列がキー値となっている。
2.sheet2の30行目にデータを入力する。
3.マクロ実行
4.sheet2のB列30行目をsheet1のB列を検索し一致下場合は
5.sheet1の行にコピーする
確認点
・コピーするデータはsheet2.range("B30")のみ?
・コピーしたデータはsheet1のどの行?末行?最初の行?

>Sheet1に1000件以上のデータが入力されています。B列に数値が入力されています。
>Sheet2の30行目にSheet1と同じ項目の内容を入力しSheet2 B列の数値と一致するSheet1の行にコピーするにはどうしたらいいのでしょうか。よろしくお願いします。
>  Sheet1           Sheet2       Sheet1
>a  b  c  d  e     a  b  c d e     a  b  c d e
>1 101 r  y  t  →  1 101 u p y  →  1 101 u p y
>2 102 u  u  o                     
>3 103 t  i  p
>4 104 i  j  o
>5 105 o  n  u 
>
>

【19078】Re:別シートに転記するには
発言  row  - 04/10/21(木) 0:08 -

引用なし
パスワード
   c〜e列のデータ類とか、
sheet1→sheets2へコピーしたのに、「u p y」の文字が
例のどこにもないし 法則性もなさそうなので、
非常に分かりにくいです。というか理解できません。

何を基準にすれば、良いのでしょうか?

▼KAZU さん:
>Sheet1に1000件以上のデータが入力されています。B列に数値が入力されています。
>Sheet2の30行目にSheet1と同じ項目の内容を入力しSheet2 B列の数値と一致するSheet1の行にコピーするにはどうしたらいいのでしょうか。よろしくお願いします。
>  Sheet1           Sheet2       Sheet1
>a  b  c  d  e     a  b  c d e     a  b  c d e
>1 101 r  y  t  →  1 101 u p y  →  1 101 u p y
>2 102 u  u  o                     
>3 103 t  i  p
>4 104 i  j  o
>5 105 o  n  u 
>
>

【19079】Re:別シートに転記するには
回答  ショボタン  - 04/10/21(木) 1:20 -

引用なし
パスワード
   ▼KAZU さん:
>Sheet1に1000件以上のデータが入力されています。B列に数値が入力されています。
>Sheet2の30行目にSheet1と同じ項目の内容を入力しSheet2 B列の数値と一致するSheet1の行にコピーするにはどうしたらいいのでしょうか。よろしくお願いします。
>  Sheet1           Sheet2       Sheet1
>a  b  c  d  e     a  b  c d e     a  b  c d e
>1 101 r  y  t  →  1 101 u p y  →  1 101 u p y
>2 102 u  u  o                     
>3 103 t  i  p
>4 104 i  j  o
>5 105 o  n  u 
>
>
質問内容があまり理解できませんでしたのでが以下の処理で
できるとおもいますが…

Dim s1max As Long'sheet1行数
Dim s2max As Long'sheet2行数
Dim i, j, count As Integer'ループカウンタ,一致データ数
'**初期化**
count = 0
s1max = Sheet1.Range("B" & Sheet1.Rows.count).End(xlUp).Row
s2max = Sheet2.Range("B" & Sheet2.Rows.count).End(xlUp).Row
'**集計**
For i = 30 To s2max
  For j = 2 To s1max
   If Sheet1.Cells(j, 2) = Sheet2.Cells(i, 2) Then
    count = count + 1
    Sheet2.Range(Sheet2.Cells(i, 2), Sheet2.Cells(i, 5)).Copy
    Sheet1.Cells(s1max + count, 2).PasteSpecial Paste:=xlPasteValues
    Exit For
   End If
  Next j
Next i
'**終了**
MsgBox "sheet1とsheet2のデータで同じ値は" & count & "個ありました。", vbOKOnly, "結果表示"

終了時にはsheet2のB30以降のデータを削除しないと処理を行う度にsheet1に
データがコピーされますので…

【19088】Re:別シートに転記するには
質問  kazu  - 04/10/21(木) 13:24 -

引用なし
パスワード
   ▼まー坊 さん:
>▼KAZU さん:
>問い合わせ内容がよくわかりませんので確認させてください。
>仕様は以下のとおりであってますか?
>1.sheet1にデータがあるB列がキー値となっている。
>2.sheet2の30行目にデータを入力する。
>3.マクロ実行
>4.sheet2のB列30行目をsheet1のB列を検索し一致下場合は
>5.sheet1の行にコピーする
>確認点
>・コピーするデータはsheet2.range("B30")のみ?
>・コピーしたデータはsheet1のどの行?末行?最初の行?

処理したいことを順を追って説明しますと
1マクロを使って、Sheet1のデータの中からB列の検索したい特定の文字列を含むものを行 ごとSheet2に抽出しそこからさらにコンボボックスを使ってその中の1品目を選択し、User  formに表示します
2この表示された内容を修正したときコマンドボタンを使ってSheet1の修正する前と同じ場所 に上書きしたい(C列は商品固有の数値が入力されています)

前回の質問ではUserformに表示されたデータを修正してSheet2の30行目にいったん転記した後、コマンドボタンでSheet1の修正する前と同じ行に上書きすることを考えました。
方法としてはどちらでもかまわないのですが、Sheet2→1間でC列の文字列が一致した場合のSheet1への上書きの方法がわかればということなのですがいかがでしょうか。

【19092】Re:別シートに転記するには
質問  kazu  - 04/10/21(木) 14:07 -

引用なし
パスワード
   ▼ショボタン さん:
>▼KAZU さん:
>>Sheet1に1000件以上のデータが入力されています。B列に数値が入力されています。
>>Sheet2の30行目にSheet1と同じ項目の内容を入力しSheet2 B列の数値と一致するSheet1の行にコピーするにはどうしたらいいのでしょうか。よろしくお願いします。
>>  Sheet1           Sheet2       Sheet1
>>a  b  c  d  e     a  b  c d e     a  b  c d e
>>1 101 r  y  t  →  1 101 u p y  →  1 101 u p y
>>2 102 u  u  o                     
>>3 103 t  i  p
>>4 104 i  j  o
>>5 105 o  n  u 
>>
>>
>質問内容があまり理解できませんでしたのでが以下の処理で
>できるとおもいますが…
>
>Dim s1max As Long'sheet1行数
>Dim s2max As Long'sheet2行数
>Dim i, j, count As Integer'ループカウンタ,一致データ数
>'**初期化**
>count = 0
>s1max = Sheet1.Range("B" & Sheet1.Rows.count).End(xlUp).Row
>s2max = Sheet2.Range("B" & Sheet2.Rows.count).End(xlUp).Row
>'**集計**
> For i = 30 To s2max
>  For j = 2 To s1max
>   If Sheet1.Cells(j, 2) = Sheet2.Cells(i, 2) Then
>    count = count + 1
>    Sheet2.Range(Sheet2.Cells(i, 2), Sheet2.Cells(i, 5)).Copy
>    Sheet1.Cells(s1max + count, 2).PasteSpecial Paste:=xlPasteValues
>    Exit For
>   End If
>  Next j
> Next i
>'**終了**
>MsgBox "sheet1とsheet2のデータで同じ値は" & count & "個ありました。", vbOKOnly, "結果表示"
>
>終了時にはsheet2のB30以降のデータを削除しないと処理を行う度にsheet1に
>データがコピーされますので…


>処理したいことを順を追って説明しますと
>1マクロを使って、Sheet1のデータの中からB列の検索したい特定の文字列を含むものを行 ごとSheet2に抽出しそこからさらにコンボボックスを使ってその中の1品目を選択し、User  formに表示します
>2この表示された内容を修正したときコマンドボタンを使ってSheet1の修正する前と同じ場所 に上書きしたい(C列は商品固有の数値が入力されています)
>
>前回の質問ではUserformに表示されたデータを修正してSheet2の30行目にいったん転記した後、コマンドボタンでSheet1の修正する前と同じ行に上書きすることを考えました。
>方法としてはどちらでもかまわないのですが、Sheet2→1間でC列の文字列が一致した場合のSheet1への上書きの方法がわかればということなのですがいかがでしょうか。

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