VBA初心者です。仕事で請求書の詳細をVBAにて作成したく独学で調べておりますが行き詰ってしまったのでお力を借りたく質問させて頂きます。
やりたいこと、現状を簡潔に書かせて頂きます。
≪やりたいこと≫
データ元からの貼付を請求書(詳細)の小計1の行(17行~45行)がいっぱいになった時、シートをコピーして再度17行目からデータを貼付
≪現状≫
①データ元からのデータ貼付(※45行を超えてもそのまま46~貼付してしまう)
②シートをコピー(コピーはできましたが17~45行を一度リセットが出来ていない)
下記、作成したVBAを記載します。
ご教授頂けたらと思います。宜しくお願い致します。
-------------------
Sub 請求書詳細作成() '請求書詳細作成ボタン
'シートの指定
Dim wb1, wb2 As Workbook
Dim sh1, sh2 As Worksheet
Dim Cnt As Integer
Dim MaxRow As Integer
Set wb1 = Workbooks.Open(ThisWorkbook.Path & "\請求書(詳細).xlsx ")
Set wb2 = Workbooks("日計データ(合算).xlsm")
Set sh1 = wb1.Worksheets("詳細")
Set sh2 = wb2.Worksheets("日計(合算)")
MaxRow = sh2.Cells(6, 1).End(xlDown).Row
Cnt = 17
For i = 6 To MaxRow
If sh2.Cells(i, 1).Value = sh2.Cells(6, 12).Value Then
Range(sh1.Cells(Cnt, 2), sh1.Cells(Cnt, 7)).Value _
= Range(sh2.Cells(i, 4), sh2.Cells(i, 9)).Value
Cnt = Cnt + 1
sh1.Cells(13, 4).Value = sh2.Cells(i, 2).Value '案件名
sh1.Cells(6, 2).Value = sh2.Cells(i, 3).Value '取引先名
End If
Next
sh1.Cells(13, 2).Value = sh2.Cells(6, 12).Value '案件コード
sh1.Cells(13, 6).Value = sh2.Cells(2, 7).Value '期間スタート
sh1.Cells(13, 8).Value = sh2.Cells(2, 9).Value '期間終了
sh1.Activate
'シートのコピー(一番後ろへ)
sh1.Copy After:=Worksheets(Worksheets.Count)
End Sub
No.1ベストアンサー
- 回答日時:
こんにちは!
細かい検証はしていませんが・・・
>いっぱいになった時、シートをコピーして再度17行目から・・・
というコトなので、
>End If
の次に(Nextの前に)
If cnt = 45 Then '//←45行目まで埋まったら・・・//
Worksheets.Add after:=Worksheets(Worksheets.Count)
sh1.Cells.Copy Worksheets(Worksheets.Count).Range("A1")
Range(sh1.Cells(17, "B"), sh1.Cells(45, "G")).ClearContents '//17行目~45行目データを消去//
cnt = 17
End If
を追加してみてはどうでしょうか?
※ 最初に記載したように未検証なので
お望み通りにならなかったらごめんなさい。m(_ _)m
お礼が遅くなりました・・汗
さっそく試してみます!!ご親切にありがとうございます。上手く作動しましたらベストアンサーさせて頂きます★
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。 6 2023/03/21 16:12
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Visual Basic(VBA) 【VBA】特定のワードが入っている行全体を塗りつぶしたい 4 2022/04/20 15:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA 別シートの複数の...
-
シャープのアクオス sh-m25 を...
-
excel:色付き文字の抽出と変換法
-
重複データの集計マクロについて
-
VBA 貼付先範囲(行)がいっぱ...
-
VBA別シートの最終行の下行へ貼...
-
[EXCEL]全てのチェックボックス...
-
Excel VBA元データから別シー...
-
Excel VBA インデックスの境...
-
WorkbooksとWorksheetsを簡単に...
-
エクセルVBAで 2種のリストを...
-
スマホ機種変更で旧機種のGoogl...
-
LAVIE Direct DT PC-GD298ZZAL...
-
外付けHDDをフローリングに落と...
-
ドコモの電話帳バックアップに...
-
拡張子「.HUF(.huf)」のファ...
-
au(MEDIASKIN)からiPhoneへの...
-
Docomo携帯メールをコピーした...
-
パソコンから携帯でフルうたを
-
自作した3pgかmp4ファイルを着...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel で行を指定回数だけコピ...
-
エクセルVBA 別シートの複数の...
-
シャープのアクオス sh-m25 を...
-
excelの差込印刷で可視セルだけ...
-
Excel VBA インデックスの境...
-
VBA:同じ文字列データの比...
-
エクセルVBAで 2種のリストを...
-
エクセル:VBAで月変わりで、自...
-
歯抜けの時間を埋めて行の挿入
-
エクセルVBAで SendKeys "{TAB}"
-
VBAで条件が一致する行のデータ...
-
VBA別シートの最終行の下行へ貼...
-
EXCELマクロで全シート対...
-
Excel VBAでシート内全体に非表...
-
VBA 貼付先範囲(行)がいっぱ...
-
VBAで複数シート選択
-
【VBA】UserForm1の中で使うワ...
-
【WORD差し込み印刷】複数レコ...
-
VBAで複雑な構成の転記
-
エクセルVBAでの日付順のデ...
おすすめ情報
データ元と請求書の画像上げておきますので参照頂けたらと思います
まずはデータ元です
請求書の画像です