Excel VBA質問箱 IV

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

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


49098 / 76732 ←次へ | 前へ→

【32556】Re:抽出・入力方法
発言  ponpon  - 05/12/17(土) 12:42 -

引用なし
パスワード
   こんにちは。

>ラベルNoは、日付+商品番号+番号

商品番号???

前回も今回も商品番号は、一番はじめ10000、新しいものが出ると20000、
次は30000となっているようですが・・・。

商品番号の一覧がどこかにあるのであれば、VLOOKUP関数やMATCH関数、FIND関数
などを使って、番号を参照する必要があります。


いろいろとやってみて、一応できたのですが、課題があります。
課題が解決できないときは、捨てて、識者の回答をお待ちください。


=前提=
 ◎A列の書式はは、文字列にしてください。(マクロではしていません)
 ◎C列の書式は、数値にしてください。(〃)
 ◎商品番号は、前回と同じように10000、20000、30000・・・としています。

=課題=
 このままで行くと2010年になると使えなくなります。
 (いろいろ考えたのですが、すみません)


以下コードです。ジーとモジュールに貼り付けて試してください。

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim myNO As Double
 
  Application.ScreenUpdating = False
  With Target
   If .Count > 1 Then Exit Sub
   If IsEmpty(.Value) Then Exit Sub
   If Not Application.Intersect(Target, Range("C:C")) Is Nothing Then
    Application.EnableEvents = False
    If .row = 2 Then
     myNO = CDbl(Format(Date, "yymmdd") & "10001")
     .Offset(, -1).Value = 1
    End If
  
   
    For i = .row - 1 To 2 Step -1
      If Cells(i, "C").Value = .Value Then
       .Offset(, -1).Value = Cells(i, "B").Value + 1
       myNO = CDbl(Format(Date, "yymmdd") & Mid$(Cells(i, "D"), 6) + 1)
       Exit For
      Else
       .Offset(, -1).Value = 1
       myNO = CDbl(Format(Date, "yymmdd") & _
       Int((Mid$(Application.Max(Range("D:D")), 6) _
       / 10000) + 1) * 10000 + 1)

      End If
    Next
  
    .Offset(, -2).Value = Format(.row - 1, "00000")
    .Offset(, 1).Value = myNO
   
    Application.EnableEvents = True
   End If
  End With
  Application.ScreenUpdating = True

End Sub

0 hits

【32256】抽出・入力方法 どんぼ 05/12/11(日) 20:43 質問
【32261】Re:抽出・入力方法 ponpon 05/12/11(日) 22:19 お礼
【32552】Re:抽出・入力方法 どんぼ 05/12/17(土) 9:19 質問
【32556】Re:抽出・入力方法 ponpon 05/12/17(土) 12:42 発言
【32558】Re:抽出・入力方法 ponpon 05/12/17(土) 16:06 発言
【32562】Re:抽出・入力方法 どんぼ 05/12/17(土) 21:35 お礼

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