ここから本文です

sheet1の注文書の内容をsheet2の累積データに自動転記をする方法を教...

sor********さん

2010/12/1013:14:12

sheet1の注文書の内容をsheet2の累積データに自動転記をする方法を教えてください。

たとえばsheet1 A品名 B個数 C単価 D納期 となっていて行は5~10行になりその都度注文数はかわるので一行の時もあれば5行の時もあります。マクロは初心者でXPです。テンプレートウィザードは一行分しか転記できないんですよね…宜しくお願いします

補足回答ありがとうございます。Worksheets("Sheet2").Cells(Lastrow + 1, 1) 部分でエラーが出てしまいます。。。ただマクロの組み立てが理解できました!!!後超初心者なので起動と実行も教えていただけませんでしょうか!!!!すみませんが宜しくお願いします。

閲覧数:
820
回答数:
2
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

riv********さん

編集あり2010/12/1516:25:45

Sub 注文書転記()
Dim i As Long, Lastrow As Long
Lastrow = Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row ’Sheet2のデータの最終行を取得
Worksheets("Sheet1").Activate
i = Cells(5, 1).End(xlDown).Row 'sheet1のデータの最終行を取得
Range(Cells(5, 1), Cells(i, 6)).Copy _
Worksheets("Sheet2").Cells(Lastrow + 1, 1) 'Sheet1のデータのある範囲をSheet2の最終行の1行下にCopy
Range(Cells(5, 1), Cells(i, 6)).clearcontents 'おまけ 注文書のクリアー
End Sub
こんな感じでいかがでしょうか。
ただ累積データには注文書番号などのヘッダー部分のデータも付加するのが普通の様式だと思います、
その辺は工夫してみてください。
ここでは範囲指定して一括でCopyしていますが1行ずつCopyする方法でもいいと思います。
*--------*補足
そうですね。この場合は転記先も同じセルの範囲をしてしないといけませんね
クリップボード経由だと転記先の先頭セルを指定すればいいので簡単になります。
Range(Cells(5, 1), Cells(i, 6)).Copy
Worksheets("Sheet2").Cells(Lastrow + 1, 1).pastespecial
Application.CutCopyMode = False
でいいと思います。

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

rob********さん

2010/12/1017:10:46

sheet1 と sheet2 のレイアウト次第ではないでしょうか?
累積データってのがどんなものなのかちょっとわからないです。
↓VBAのサイトです。
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_070_07.html

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

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

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

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

閉じる

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

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

閉じる