電子書籍の厳選無料作品が豊富!

注文を受けた順番に店舗ごとに一連番号(発注番号)を付して伝票を作成していますが、既に付与した一連番号を誤って重複して付与してしまいます。原因は一連番号をそのままにして店舗IDのみを上書入力してしまう単純入力ミスです。この入力ミスを防止する方法、例えば「使用不可」「番号重複」などの注意が表示され入力できないような方法をご教示ください。なお伝票は添付画像シート(例)の「入力セル」から別シートに転記し作成するようにしています。
(実作業シートはExcel関数とマクロ(VBA)を混交して使っています。)

「一連番号を付与する場合、一度使用した番号」の質問画像

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

  • つらい・・・

    回答を頂いたのですが・・・。
    一連番号は6桁の番号で前年から連続している数字で一度使用したら使えません。
    入力セルは決まっていて、G5に一連番号、H5に店舗IDを必ず入力したら、マクロを通して伝票と帳簿に自動転記するようにしています。
    Fの店舗を記録した後、次のC店舗を入力する際にG5の一連番号を次の番号に上額せずにC店舗のID番号を上額してしまうミスがあるので、一連番号の重複を防止したいのです。Excelの入力規制ではうまく行きませんので、マクロ&VBAでの方法を教えて下さい。

      補足日時:2019/01/05 20:13
  • 有り難うございます。
    一連番号を行番号C6、店舗名を行番号K11と入力しても、次の店舗等のデータを入力セルに上書して記録する際、一連番号をそのままにして店舗名のみ上書入力してしまうと、一連番号が重複した伝票が作成されてしまう。この2重付与の入力ミスを防止できないかと考えています。
    よろしくお願いします。

      補足日時:2019/01/05 22:06

A 回答 (3件)

こんにちは!



横からお邪魔します。
C列データ内で、G5セルのデータと一致する右隣り(D列)が入力済みであれば
何らかの注意喚起をすれば良いのですかね?

一応そういうことだとして・・・
シートモジュールです。

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim c As Range
  With Target
   If .Address = "$G$5" And .Value <> "" Then
    Set c = Range("C:C").Find(what:=.Value, LookIn:=xlValues, lookat:=xlWhole)
     If Not c Is Nothing Then '//←念のため//
      If c.Offset(, 1) <> "" Then
       MsgBox "すでに入力済み"
       .Select
       Exit Sub
      End If
     End If
   End If
  End With
End Sub

的外れならごめんなさい。m(_ _)m
    • good
    • 0
この回答へのお礼

いつもtom04さん有り難うございます。何らかの注意喚起で入力ミスを防止したかったのです。的確かつ丁寧に教えて頂き助かりました。またよろしくお願いします。

お礼日時:2019/01/08 14:20

はっきり言ってどのようにしたいのか、この文章ではよく分かりません



例えば前年からの続きであれば、開始番号は前年から引継ぎその番号プラス行番号とかすれば良いでしょ

工夫次第だと思うのだが
    • good
    • 0

行番号を一連番号にするとか

    • good
    • 0

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