dポイントプレゼントキャンペーン実施中!

2021年11月15日に、台帳シートと入力シートの転記に関する質問をし、解決していましたが、新たな問題が発生しました。
 現在、入力シートの「転記印刷」ボタンで台帳に転記し、納品書台帳に移動しD2の番号は6に変わりましたが、D12セルに数字が入りません。次の来客時には、D12セル以下、その都度、入力しなければならない状態です。(メッセージ表示:「伝票番号=6は納品書台帳にありません」)
 それで、入力シートの転記印刷」ボタンをクリックした時に、D列にもD2セルの番号と同じ、数字が入るようにしたい。
 再度、教えて頂きたくお願いいたします。
 画像が送れず解りにくいですが、納品書台帳は、B2,C2セルは日付、D2セルは一連番号、E2セルは店コードを手入力し、7列以降に、入力シートからの転記印刷ボタンで、B7C7(日付)、D7(台帳番号=一連番号)、E7(店コード)、G7(店の名前)のデータが転記されます。D7以降に次の数字が順に入りません。
 前回、教えて頂いたコード(大文字のところ)を追加したコードです。
Public Sub 転記()
Dim sh1 As Worksheet
Dim sh2 As Worksheet

以下が、セキュリティポリシーで送れませんでしたので、別送します。

質問者からの補足コメント

  • 追加分2回目です。

    Dim maxrow As Long
    Dim row As Long
    Dim dicT As Object
    Dim key As Variant
    Set sh1 = Worksheets("納品書台帳")
    Set sh2 = Worksheets("入力シート")
    Set dicT = CreateObject("Scripting.Dictionary")
    maxrow = sh1.Cells(Rows.Count, "D").End(xlUp).row
    '伝票番号を記憶
    For row = 7 To maxrow
    key = sh1.Cells(row, "D").Value
    dicT(key) = row
    Next

      補足日時:2021/11/17 19:57
  • 追加3回目

    key = sh2.Cells(8, "R").Value
    If dicT.exists(key) = False Then
    MsgBox ("伝票番号=" & key & "は納品書台帳にありません")
    Exit Sub
    End If
    If sh2.Cells(12, "E").Value = "" Then
    MsgBox ("名前が未入力です")
    Exit Sub
    End If
    If sh2.Cells(24, "S").Value = "" Then
    MsgBox ("金額が未入力です")

      補足日時:2021/11/17 20:02
  • 追加4回目です。

    Exit Sub
    End If
    row = dicT(key)
    sh1.Cells(row, "G").Value = sh2.Cells(12, "E").Value '名前
    sh1.Cells(row, "H").Value = sh2.Cells(24, "S").Value '金額
    MsgBox ("転記完了印刷します")
    Call 印刷 'Sub印刷()を呼び出す。

    sh1.Cells(2, "D").Value = sh1.Cells(maxrow, "D").Value + 1
    sh1.Cells(2, "E").Value = ""

    End Sub

      補足日時:2021/11/17 20:04
  • 台帳の画像です。

    「納品書台帳の納品書番号(一連番号)が入力」の補足画像4
      補足日時:2021/11/17 20:05
  • 入力シートの画像です。

    「納品書台帳の納品書番号(一連番号)が入力」の補足画像5
      補足日時:2021/11/17 20:06

A 回答 (1件)

今回の例でいえば、


台帳のD12に6(=D2の値)を設定する処理を追加したいということでしょうか。
もし、そうであれば、
sh1.Cells(2, "D").Value = sh1.Cells(maxrow, "D").Value + 1
sh1.Cells(2, "E").Value = ""
の次の行へ
sh1.Cells(maxrow+1, "D").Value = sh1.Cells(maxrow, "D").Value + 1
を追加してください。
(こちらで動作確認はしていませんので、不具合があれば補足してください)
    • good
    • 0
この回答へのお礼

助かりました

前回からご教授頂き有難うございます。
今、コードを追加し動作確認いたしました。
D12に確かに表示できました。
これで、台帳記録、納品書等の発行手続きがスムーズにできるようになりました。
大変有難うございました。

お礼日時:2021/11/17 21:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!