• ベストアンサー

エクセルでロットの更新

nishi6の回答

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.4

>1.空白又A5のセルを削除した場合エラ―出る。     対応しました。考慮不足でした。 >2.A5だけでは無く複数のセル(A5~A10)は可能?    対応しました。範囲は変更できるよう分かりやすく書いたつもりです。 >3.シート名を指定    先ほどのコードは、この機能を使いたいシートのコードウインドウに貼り付ければいいんですが    たくさんあると大変?下記はシート名を指定できるようにしてあります。ThisWorkBookに貼り付けます。 <ThisWorkBookのコードウインドウに貼り付けます> Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)   '例 Sheet1かSheet2でなければ何もしない   If Not (Sh.Name = "Sheet1" Or Sh.Name = "Sheet2") Then Exit Sub   '単一のセルの変更のみ対象   If Not (Target.Rows.Count = 1 And Target.Columns.Count = 1) Then Exit Sub   '対象セルを消去した場合の対応   If Target = "" Then Target.Font.ColorIndex = xlAutomatic: Exit Sub   'A5からA10に含まれる場合のみ処理する   If Union(Range("A5:A10"), Target).Address <> Range("A5:A10").Address Then Exit Sub   Dim LOT As String 'LOT   Dim LOTnen As Integer 'LOTの年   Dim LOTtuki As Integer 'LOTの月   Dim keikokuNen As Integer '警告年   Dim keikokuTuki As Integer '警告月   On Error GoTo ErrorHandler   LOT = Right("00000000" & Target, 8) 'セルが数値形式の場合の対応   LOTnen = 2000 + Left(LOT, 1)   LOTtuki = InStr("123456789XYZ", Mid(LOT, 2, 1))   keikokuNen = Year(Now())   keikokuTuki = WorksheetFunction.Substitute(Range("A1"), "警告月", "")   '判定   If keikokuNen * 12 + keikokuTuki < LOTnen * 12 + LOTtuki Then     Target.Font.ColorIndex = 3 '赤   Else     Target.Font.ColorIndex = xlAutomatic '黒   End If   Exit Sub ErrorHandler:   MsgBox "エラーです" End Sub

Mizumoto-Y
質問者

お礼

アドバイス有難う御座いました。 期限を変更にした場合は更新が出来なかったは残念ですが とても良く作ってあり感謝しております。 ポイント入れておきます。

関連するQ&A

  • ロット数で抽出したい

    多数の品名があり、それぞれ複数のロットのデータがあります。 例えば、 A列  B列      C列 品名A ロットNo.123  データ0.1 品名B ロットNo.235  データ0.5 品名C ロットNo.567  データ3.1 品名A ロットNo.125  データ0.2 品名D ロットNo.425  データ1.2  :    :      : と言う感じで、品名は1000以上、全ロット数は30000ほどあります。 ここでロット数が4ロット以上の品名だけを抽出してデータ解析をしたいのですが、うまい方法はあるでしょうか? 一応、D列の一行目に =countif($A$1:$A$30000,A1) と入力後、オートフィルで全てコピーしてやれば後はオートフィルターで4以上を指定してやればよいのですが、この数式をオートフィルでコピーする際に非常に時間がかかります(20分くらい)。 もっと簡単にやれる方法があれば教えて頂けると助かります。

  • エクセル 年月日を入力している列から指定月を抽出

    以下のように、月日をyyyy/mm/ddで入力している列から、1月のもの、2月のものと、指定した月のものだけを抽出したいです。 オートフィルタのオプションで、どのように指定すれば抽出できるのでしょうか。 よろしくお願いします。 ---------- A ---------- 1967/10/07 1963/02/23 1978/11/22    ←これらから1月のものだけ抽出 1951/01/24 1973/06/18 1974/01/08 ----------

  • エクセル 月日を入力している列から指定月を抽出

    以下のように、月日をmm/ddで入力している列から、1月のもの、2月のものと、指定した月のものだけを抽出したいです。 オートフィルタのオプションで、「01/で始まる」としましたが、抽出されません。 よろしくお願いします。 ---------- A ---------- 10/07 02/23 11/22    ←これらから1月のものだけ抽出 01/24 06/18 01/08 ----------

  • エクセルのセルの属性が無効に

    Office2007のエクセルについて質問します。 月帳簿を作成していますので「元原簿」を1個作ってあり、毎月それを「別名保存」 で増やしています。 元原簿には縦のセルは Aが月日のみ、Cは金額、Dは郵便番号はので文字列、 を「セルの書式設定」の「表示形式」から指定し、文字色も同じ欄の「フォント」から 指定してあり、月の最初の方はその指定通りに入力できるのですが 10日頃になってその指定した属性が失われ、例えば月日ですと 6/11という指定 なのに 2012/6/11というデフォルトに戻ってしまいます。 文字色も黒になっています。 一遍に属性が失われるのではなく 下のタブは4個作っていて4項目別のシート になっていますが 一つのシートにのみ起こり、別の日に別のシートがまた 不都合になります。 発送業務に使用しているので 発送済みの列は上に動かして色も変更しております ので 途中でセルの「色属性」など変化させるのはとても面倒なのです。 (月日や文字列設定は変えるのが簡単ですが) 一旦設定したフォントの色属性など 何故失われてしまうのか、解決策が ございましたらご教授お願い致します。

  • エクセルについて

    エクセルで同じ値を、別の指定されたセルに自動的に入力する方法があれば、教えてください。 たとえば、A1に7と入力したときに、自動的に同じシートのA31に7と入力されてほしいんです。指定した色もつけられると助かります。

  • エクセルについて教えて下さい。

    A1~A10・B1~B10・C1~C10の中に、7月から10月までの日にちをランダムに入力します。 A1~C10のセルに、同じ日にちが4つ以上入力されたときに、警告として、その日付が赤字に表示、または警告するようにするには、どうしたらいいのでしょうか。 よろしくお願いします。

  • エクセルのvlookupに関して

    お世話になります。 会員番号を数字だけではなく、アルファベットも付けたものを使用したいと思っております。 例 00001A, 00002A, 09999A 会員番号セルの書式設定のユーザー定義に「00000"A"」を指定したのですが、 VLOOKUPの検索値セルに00001Aと入力した時にエラーが出てしまいます。 会員番号セルに直打ちで00001Aと入力すると参照は出来るようになるのですが、 1万以上のセルに連番した会員番号(00001A~09999Aまで)を入力しなくてはいけないので、 一つ一つ直打ちするのはとても大変で困っております。 00001A~09999Aまでの連番を簡単に入力でき、 VLOOKUPの検索値セルでも参照可能となる方法は御座いますでしょうか。 何卒ご解答の程よろしくお願い致します。

  • エクセルについて(日付、曜日の入力)

    A1、A7、A13・・・・と、ずっと6個おきの場所に日付を4月1日、4月4日、4月7日・・・と3日におきに入力。 また、A3、A9、A15・・・と、ずっと6個おきの場所に、入力した月日の曜日を入力したいのですが、可能でしょうか。 例えば、A1に4月1日、A3に火曜日、A7に4月4日、A9に金曜日というように。 よろしくお願いします。

  • エクセル関数について

    下記内容ができる関数を調べているのですが、いっこうに進みません。 教えていただけませんでしょうか。。。 A列:行番号 B列:入力列 ※A列は1~の連番ではありません。 B列で入力した最後の行が何行目(A列の値)なのかを、他のシートに 反映させたい場合。。。 よろしくお願いいたします。

  • エクセルで連番をマクロで

    こんにちは いつもお世話になっています。 Windows7、エクセル2010で教えてください。  B3から仮にB100まで文字列があるとします、空白セルはありません。 この状態でA3からA100まで1から始まる連番をマクロで実行したいのです。 実際はB列のデータの最終行は不定です。つまり、B列にデータがなくなるまで(空白セルになるまで)A列に連番をつけたいのです。現在はA3,A4に1,2と入力し、オートフィルで該当セルを選択し「予測」で連番をつけています。 マクロ記録ではB列にデータがなくなる判断ができなくて作れません。 この作業が頻繁にあるものですからマクロができれば助かります。 よろしくお願いいたします。