倉庫の管理で困っています

このQ&Aのポイント
  • 無謀な試み?倉庫の商品管理をエクセルで行っているが、問題が発生している。入庫に関しての質問。
  • VBAを使って入庫操作を自動化したい。具体的には、Sheet1に入力した商品をSheet2の倉庫に配置したい。
  • 具体的な操作手順や問題点についてアドバイスを求めている。範囲指定や条件分岐、商品の移動などを考慮する必要がある。
回答を見る
  • ベストアンサー

倉庫の管理で困っています

日々大量に出入りがある商品をエクセルで管理しようという無謀な試みをやっています(^^; 商品は、パレットに乗って搬入されます。倉庫には、それを並べる「コース」というスペースがあって、そこに十数列、3段で積み上げていきます。ただし、小パレットの場合、5段積みにすることもあります。 とりあえず入庫について質問です。 下図のように、Sheet1に入力したものを、倉庫に模したSheet2にVBAを使って「入庫」したいと思っています。 コースを指定して、空いている列を探し、その一段目から並べていきます。 それを、Sheet1のA2:D2を, (例えば空いていれば)Sheet2のB2:E:2にコピーして表現します。 10コースずつを1Sheetに表現していますから、Sheet1のG列で、コースを指定すると、250コース・25シートあるSheetが決まり、その第一段目の空いているセルを探して、そこから三段ずつコピーを始めます。 コピーの際は、Sheet1のF列に入力するパレット総数を3で割ってくり返します。 (下図の場合は、30パレットですから、3段10列に並びます) そして、三段積んで列を移り、また三段積んで列を移るというコピーをしたいと思っています。 どうすればいいのでしょうか? 今は、Sheet2~しかなく、入庫帳票を見ながら、範囲指定→コピペをくり返す膨大な作業に忙殺されています。 小パレットの際の条件分岐もしなければならないし、入庫後の商品の移動も考えなければなりません。 どなたか、お知恵をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • TAKA_R
  • ベストアンサー率32% (26/79)
回答No.7

あまり変なものは使っていないので(基本的なものばかり)バージョンによるエラーは起こりづらいだろうなと思っています。 むしろシートやセルの名前が違うとか(完全一致しないと半角全角スペースの有無の違いでもだめ)、データ型が違うとかのようなエラーは起こっているかもしれません。 シート名の箇所をわかりやすく(というかそのまま使えるように)して、お隣の列に移るようにしてみました。 ちなみに全くスピードは追求しておりません。 Sub 入庫() Dim l As Long 'コースの列場所 Dim d As Long '段積み数 Dim s As Long 'シートを確定するための変数 Dim k As Long, c As Long, j As Long, t As Long, n As Long '計算のための変数 Dim data As Variant Dim ws As Worksheet data = Sheets("Sheet1").Range("a1:g" & Range("a1000").End(xlUp).Row) For j = 2 To UBound(data) 'シート1の行分だけ繰り返す s = (Int(Val(data(j, 7) - 1) / 10) + 1) * 10 Set ws = Sheets(CStr(s - 9) & "-" & CStr(s))  ’新しい約束事でのシート名。存在しないとエラーに l = ((Val(data(j, 7)) - 1) Mod 10) * 5 + 2 Select Case data(j, 5) Case "中" d = 3 Case "小" 'パレット種による場合わけ d = 5 End Select c = data(j, 6) 'ループで書き込むたびにパレット数を減らす k = 2 '書き始めの行位置 Do If ws.Cells(k, l).Value = "" Then '記入があるか確認して t = d If c < d Then t = c 'tはコピペする行数 For n = 1 To 4 ws.Range(ws.Cells(k, l + n - 1), ws.Cells(k + t - 1, l + n -1)) = data(j, n) Next c = c - d '残りのパレット数 End If If c <= 0 Then Exit Do 'パレット残数が0になったらループを抜ける k = k + 6 if k>91 then '91行目を超えると次のコースの頭に移る k=2 l=l+5 end if Loop Next End Sub

acter_k
質問者

お礼

動きました! ありがとうございました。 解決というわけではありませんが、参考にさせていただいて、もっと深めていこうと思います。 なんとか、仕事が軽減できればいいのですが・・・ ありがとうございました。

その他の回答 (6)

  • TAKA_R
  • ベストアンサー率32% (26/79)
回答No.6

やっぱり確認してから送らないと駄目ですね。 配列を使うものに戻しました。 前の補足でシート名が変わったようなので、対応させたものを’でコメントアウトして載せてます。 使う場合には’をとって(2行とも)使ってください。 ちなみに私のコードでもコースの列が足りなくなったからといってお隣のコースには移りません。 移ったほうが良いのですか? Sub 入庫() Dim l As Long 'コースの列場所 Dim d As Long '段積み数 Dim s As Long 'シートを確定するための変数 Dim k As Long, c As Long, j As Long, t As Long, n As Long '計算のための変数 Dim data As Variant Dim ws As Worksheet data = Sheets("Sheet1").Range("a1:g" & Range("a1000").End(xlUp).Row) For j = 2 To UBound(data) 'シート1の行分だけ繰り返す Set ws = Sheets("Sheet" & CStr(Int(Val(data(j, 7)) / 10) + 2)) '書き込みシートの指定 's = (Int(Val(data(j, 7) - 1) / 10) + 1) * 10 'Set ws = Sheets(CStr(s - 9) & "-" & CStr(s)) l = ((Val(data(j, 7)) - 1) Mod 10) * 5 + 2 '書き込みシート内の列の指定 Select Case data(j, 5) Case "中" d = 3 Case "小" 'パレット種による場合わけ d = 5 End Select c = data(j, 6) 'ループで書き込むたびにパレット数を減らす(減らす前のパレット数) k = 2 '書き始めの行位置 Do If ws.Cells(k, l).Value = "" Then '記入があるか確認して t = d If c < d Then t = c 'tはコピペする行数 For n = 1 To 4 ws.Range(ws.Cells(k, l + n - 1), ws.Cells(k + t - 1, l + n - 1)) = data(j, n) Next c = c - d '残りのパレット数 End If If c <= 0 Then Exit Do 'パレット残数が0になったらループを抜ける k = k + 6 Loop Until ws.Range("a10000").End(xlUp).Row < k '無限ループ回避(特に必要ない)1コース内2000列よりは少ないよね? Next End Sub

acter_k
質問者

お礼

重ねて感謝申し上げます。 貴重な時間をありがとうございます。 それにくらべ、私の説明が、当を得たものでなく、また舌っ足らずで 申し訳ありません。 実際には、倉庫に模したSheet2以降は「1-10」「11-20」・・・「241-250」と続きます。 つまり、10「コース」ごとに1シートを使っているわけです。 そして、1コースはほぼ15列×5段になっています。エクセルの行でいえば、91行が「コース」の最後になっています。 現場の作業は、「コース」が一杯になると、次のコースの空いている「列」(エクセルでは「行」)の空いている場所に詰めることになります。 まだまだ道は遠いようです。 コードをためして見ましたが、やはり最初のsetのところでエラーが出ます。 実行時エラー'9':インデックスが有効範囲にありません。 となります。 申し遅れましたが、私のexcelは、2000ですので、そのせいかもしれません。 とても勉強になっています。 ありがとうございます。

  • TAKA_R
  • ベストアンサー率32% (26/79)
回答No.5

時系列管理を含めると多分その方法ではどうにもならない(つかえない)と思うのですが、とりあえず入庫の書き込みに関してだけ考えていきます。 sheet2から後のシートはよく分からなかったので(画像では読み取れない) ・データはB2から入る(A列とB列は見だし) ・コース・列が変わるごとに1行・1列あける。 ・シート1枚に1コースから10コース、11コースから20コースと入っている と仮定する。 Sub 入庫() Dim l As Long 'コースの列場所 Dim d As Long '段積み数 Dim k As Long, c As Long, j As Long, t As Long '計算のための変数 Dim ws As Worksheet Dim ws1 As Worksheet Set ws = Sheets("Sheet1") For j = 2 To ws1.Range("a1000").End(xlUp).Row 'シート1の行分だけ繰り返す Set ws = Sheets("Sheet" & CStr(Int(Val(ws1.Range("g" & j)) / 10) + 2)) '書き込みシートの指定 l = ((Val(ws1.Range("g" & j)) - 1) Mod 10) * 5 + 2 '書き込みシート内の列の指定 Select Case ws1.Range("g" & j) Case "中" d = 3 Case "小" 'パレット種による場合わけ d = 5 End Select c = ws1.Range("f" & j) 'ループで書き込むたびにパレット数を減らす(減らす前のパレット数) k = 2 '書き始めの行位置 Do If ws.Cells(k, l).Value = "" Then '記入があるか確認して t = d If c < d Then t = c 'tはコピペする行数 ws1.Range(ws1.Range("a" & j), ws1.Range("d" & j)).Copy ws.Range(ws.Cells(k, l), ws.Cells(k + t - 1, l + 3)) c = c - d '残りのパレット数 End If If c <= 0 Then Exit Do 'パレット残数が0になったらループを抜ける k = k + 6 Loop Until ws.Range("a10000").End(xlUp).Row < k '無限ループ回避(特に必要ない)1コース内2000列よりは少ないよね? Next End Sub こんなかんじでしょうか。動作確認後に少しいじったので、動くかどうか分かりませんが。

acter_k
質問者

お礼

お忙しい中、こんなに早くありがとうございます。 でも、残念ながら動きませんでした。 最初のForの行で 「実行時エラー'91' オブジェクト変数、またはWithブロック変数が設定されていません。」 のエラーになります。 VBAの勉強は始めたばかりで、デバッグの仕方もわかりません。 自分でも見よう見まねで、以下のようなものを書きましたが、 これも動きません(^^; 困りました。 Dim comDate As String Dim n As Integer Sub 入庫管理() Dim w As Worksheet 'Sheetを選択する Worksheets("Sheet1").Activate w = Worksheets("Sheet1").Cells(n, 7).Value Select Case w Case "1","2","3","4","5","6","7","8","9","10" ws = Sheets("1-10") Case "11","12","13","14","15","16","17","18","19","20" ws = Sheets("11-20")            ・            ・            ・ End Select For n = 2 To 1000 '2から1000まで次の動作をくり返す comDate = Sheets("Sheet1").Range(Cells(n, 1), Cells(n, 4)).Value 'Sheet1 n行1~4列の値 'Caseで振り分けたシートをアクティブにする ws.Activate '「コース」(列)を選択し、入力を開始する空白セルを選択する If ws.Cells(3, 2) <> "" Then '二行目から下の空白セルを探す Do Until ActiveCell = "" ActiveCell.Offset(6, 0).Select Loop End If 'comDateを三行ずつx回貼り付ける Dim x As Integer x = Worksheets("shieet1").Cells(n, 5).Value / 3 Do Until x Sheets("Sheet1").Range(Cells(n, 1), Cells(n, 4)).Select wrksht.Activate Selection.Copy For COUNTER = 0 To 3 ActiveCell.Offset(0, 0).Select ActiveSheet.Paste Next ActiveCell.Offset(4, 0).Select Loop Next End Sub そもそも、私のは、「コース」の下限に来たときに折り返して次の「コース」に移ることもできていないし、そもそも文法が合っているかどうかもわかりません(^^;

  • TAKA_R
  • ベストアンサー率32% (26/79)
回答No.4

作業そのものは単純で、VBAには向いていると思います。 その代わり、時系列での管理や問題が発生した場合には困りますけれどね。 まあ、その辺りはこれまでもやられてきたでしょうから・・・。 いくつか質問があります。 中パレットと小パレット(大パレットもあるの?)は混在して1つの列に存在することはあるのですか? どういうタイミングでコース書き込みをするつもりですか? シート1を書き終わったらボタンを押すみたいな? (どちらかといえばこっちを推薦しますが) シート1の行のあるセルの入力がされるたびに?

acter_k
質問者

補足

ありがとうございます。 大パレットはありません。 中パレットと、小パレットが「コース」上に混在する事はありますが、 列につまりは上下に重ねられる事はありません。 書き込みのポイントは、おっしゃるように、シート1を入力し終えてから ボタンを押すようにしたいと思っています。 時系列については、いまのところ データ検索用のセルをSheet2に置いてそれをlogdateとして If logDate > Sheets("Sheet1").Cells(n, 4).Value Then などとやってみようかと思っています。 なんとかなるでしょうか?

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.3

>どなたか、お知恵をお願いします。 無料のアイデアは期待しない方が良いでしょう。 Excelを応用することを否定しませんが、質問の文言だけで具体的な方法論は出ません。 実際の管理状況をフローチャートに書き出してソフトの専門家に見てもらうと良いでしょう。 業務の効率化が出来れば利益が上がるのですからそれなりの費用を費やすことを考えてください。 費用対効果を評価しないで効率化を始めると見えない費用(人件費など)が大幅に増えて逆効果になります。 個人レベルの知識習得で行き詰った問題を具体的に質問された方が回答を得やすくなります。

acter_k
質問者

お礼

アドバイスありがとうございます。 残念ながら、私は会社の管理責任者ではありません。 単に、自分の摩滅的な仕事を楽にできないかという発想からの質問でした。 したがって、予算もなければ専門家への相談も不可能です。 ここはそういう場ではないのだということがよくわかりました。 ご回答ありがとうございます。

  • k-josui
  • ベストアンサー率24% (3220/13025)
回答No.2

書かれていますが・・・ Excelでやる事自体無謀、専用ソフトを買って下さい。 ただ、一旦導入するとそれに依存することになります。 目先の金額だけにとらわれず、様々な変動要素も考えて導入した方がいいですよ。 フリーソフトなどで導入すると、一つ変動があっただけで身動き取れなくなってその処理で忙殺されることになります。 きちんとサポートのあるソフトが、結果的に安くなると場合もあります。 (メンテナンスで何日もかかったら人件費だけで膨大になるでしょ、それ以前に身動きできなくなりますが) https://www.google.co.jp/webhp?rls=ig#newwindow=1&q=%E5%9C%A8%E5%BA%AB%E7%AE%A1%E7%90%86%E3%82%BD%E3%83%95%E3%83%88&rls=ig

acter_k
質問者

お礼

ご回答ありがとうございます。 私は会社経営者でもなければ管理者でもありません。 ただのオペレータです。 自分の仕事をなんとか楽にしたくて質問しましたが、ここはそういう場では無いようですね。 電子タグなどをつかって、管理するよう会社には進言していますが、会社にはまったくその気がなく、家に持ち帰って零時過ぎまでデータ入力に追われているのです。 アドバイスはありがたいですが、専用ソフト導入も何も権限がありません。 ここは私のような者が来る場所ではなようですね。

  • yasuto07
  • ベストアンサー率12% (1344/10625)
回答No.1

あのさ、ソフトがまずいよ、ファイルメーカー10が、Amazonで、5000円くらいだから、それ買って帳票作りなよ、 エイ列の10番目の棚の100番目の商品、、、そんなの、簡単に管理できますよ、ソフトがまずいでしょう。

acter_k
質問者

お礼

アドバイスありがとうございました。 しかし、何を言われているのか私には理解できませんでした。 残念です。

関連するQ&A

  • エクセルで2種類に該当する集計をとりたい!

    このサイトでは、いつもお世話になっています。 商品の入庫管理一覧表を作っています。 sheet1に入庫の入力画面として 1 A    B   C    D 2 日付   倉庫  品名   数量 3 1/2  東京  ○○○  300 4 1/15 大阪  **** 400 5 1/30 大阪  △△△  140 6 1/30 福岡  ###  250 7 1/31 東京  ◎◎◎  450          ・          ・          ・ と、入力していくとします(入力件数は1000を超えるかもしれません) そこで別Sheet2に入庫の照合画面として 『倉庫別かつ、品名別』の合計数量を「SUMIF関数」を使って横長の一覧表を作成しようと思っています。(他に方法が思いつかないので・・・) 「SUMIF関数」で『倉庫別かつ、品名別』の数式の作成が今ひとつ分かりません。 Sheet1の入力ものも後で入力があっているかどうか確認したい(フィルタをかけて、日別・倉庫別・品名別など)ので入力画面のSheet1の内容が別シートにコピーされても構いません。(マクロとかなのかな?分からないけれど・・・) 最初はSheet1の上記のように入力されたものはまったく同じように、倉庫別にSheet1の列に並ぶように『=A3,=A4・・・』などとし、そこからsheet2に品名別に「SUMIF関数」を作りました。 しかし、Sheet1が倉庫が10種類近くもある為、確認するときなどカーソルをたくさん移動させなくてはいけなく、見た目にもワークシートがきれいで無いので、もっとすっきりさせたいのです。 説明をどうしていいのか上手く分かりませんが、どうにかスッキリ出来ませんか? お願いします。

  • VBAで倉庫管理をしたいのですが……

    シート1に次のようなランダムな入力を行って、 それを倉庫に模したシート2に表示したいと思っています。 (下図参照) 色々な人のアドバイスを受けて、関数で表示することはできました。 シート2のセルに入力した関数 =IF(COUNTIF(入力帳票!$H$1:INDIRECT("入力帳票!F"&IF($M$1<MIN(入力帳票!$A:$A),1,MATCH($M$1,入力帳票!$A:$A,1))),ADDRESS(ROW(),COLUMN(),4)&"*")=0,"",INDEX(入力帳票!$B:$B,MATCH(ADDRESS(ROW(),COLUMN(),4)&"*",入力帳票!$F:$F,0))) 今度は、シート1で指定した範囲に、色をつけたいと思います。 そこで、以下のように書いてみましたがエラーになります。 どう修正すればいいのでしょうか? よろしくお願いします。 Sheet2をアクティブにして Sub 品番色分け() For n = 2 To 1000 Range("WorksheetFunction.INDIRECT(Sheet1!H & Format(n))").Select If Worksheet("Sheet1").Cells(n, 2).varue Lilke "*A" or "*H"Then Selection.Interior .ColorIndex = 19 .Pattern = xlSolid .PatternColorIndex = xlAutomatic ElseIf Worksheet("Sheet1").Cells(n, 2).varue Lilke "*B" Then Selection.Interior .ColorIndex = 40 .Pattern = xlSolid .PatternColorIndex = xlAutomatic ElseIf Worksheet("Sheet1").Cells(n, 2).varue Lilke "*F" Then Selection.Interior .ColorIndex = 38 .Pattern = xlSolid .PatternColorIndex = xlAutomatic ElseIf Worksheet("Sheet1").Cells(n, 2).varue Lilke "*C" Then Selection.Interior .ColorIndex = 35 .Pattern = xlSolid .PatternColorIndex = xlAutomatic End If Next End Sub 最近VBAやら関数やらの本を読み始めたばかりで、混乱しています。 よろしくお願いします。

  • 在庫管理と賞味期限管理

     現在、私は食品を取り扱う倉庫で勤務しています。今まで、在庫商品の入庫と出庫と残りの在庫数をエクセルで管理していましたが、このたび賞味期限のいつの分が本日入庫して、いつの分が出庫したのか分かるようにするように言われました。  とりあえずの間に合わせでアクセスの大変使い勝手の悪いプログラムをもらったのですが、たった10アイテムの商品を10日分入力するだけで大変な労力を費やしてしましまいました。  本日の入庫数量と賞味期限を入力して、その後各商品の出荷数量を入力するだけで賞味期限の古い順に在庫が落ちて、なおかつ「今現在賞味期限何月何日が何ケースあります」というのが確認できる用にしたいのですが、どうしたらいいでしょうか。(市販品のソフトで代用できるのでしたらご紹介お願いいたします)  なお、納品先は各所ありますが商品ごとの総出荷数は分かっています。

  • アクセスでの在庫管理(在庫期間が知りたい)

    アクセスを使って商品の在庫管理を行おうと試行錯誤しています。 1.入庫テーブル(商品名、入庫日、入庫数)に入力。 2.出庫テーブル(商品名、出庫日、出庫数)に入力。  これらから、商品と入庫日をロット単位とし、このように在庫を計算しています。  入庫の合計―出庫の合計=在庫 ここからネックになっているのが、在庫期間をどうあらわすかと言う点です。  通常、今日までの在庫期間は   在庫期間=今日―入庫日  によって表しています。  ここまでは出来ていますが、さらに一歩進めて  日にちを毎回指定し   指定日からの在庫期間=指定日―入庫日  のような感じで在庫期間を表示させたいのですが どのようにクエリを作ったらよいのでしょうか? このようなフローで良いのか、 参考HP等ありましたらアドバイス頂けませんか?

  • 入庫状況を把握したいのですが・・・(エクセル)

    商品が10品目あり引き取り先倉庫が2種類あり、管理したいのが (1)入庫予定数量(2種類倉庫分合算) (2)入庫済数量(〃) (3)未入庫数量(〃) (4)入庫数量(〃) (5)入庫日 (6)(1)(2)(3)(4)のそれぞれの倉庫分 以上4社分(4sheet)を管理したい(エクセル)のですが、ピポットテーブルを使用しても構わないのであまり見にくくない作り方はありますか?(多分横長になると思うので・・・)仕事で依頼されて困っています。

  • 職場(倉庫)での些細な悩みなのですが・・・

    私は今、倉庫でフォークリフトを使ったアルバイトをしているのですが、その職場に今年の四月入社の社員が入ってきて、それまでは普通に行われていた事に文句を付けるのです。たとえば、今まで4段で重ねていた物を3段でつけなくてはいけないとか、2段済み走行をしてはいけない等です。それは、会社で正式に決まった事ではなく、彼の個人的な意見なのですが、業務命令のような顔をしてアルバイトにだけ言うのです。確かに言っている事は正論なのですが、そんな事をしていては、商品の置き場所が無くなっったり、やたらに時間がかかったりと、何も良い事は無いのです。細かいところでは、腕まくりをしてはいけないとか、パレットに商品を積んでいて熱くなると一時上着を脱いで仕事をしたりする事にも上着を着ろとか、一々重箱の隅をつつく事を言って来ます。本人(その社員)は今まで倉庫では働いた事もなく、フォークにも乗れ無いし、免許を取ろうとか、練習をしようと言う気も無く、私達がなぜその様な行為をするのかも分かっていません。その社員は入社3ヶ月までが研修期間で、その間に何らかの成果を出し、査定を良くしようとしている様で、その間に事故・破損が減ったと言う結果を出す目的がある様です。こういう場合、その上司に何と言えばいいのでしょうか、まさか「一々重箱の隅をつつくような事を言うんじゃね=!」とか「だったらお前やってみろよ」とか言うわけにも行かず・・・でも言いたい事はそういう事なのです。

  • エクセルの在庫管理からレポート作成について

    こんにちは もしお時間があるようでしたら教えてただきたいです。内容は、会社での在庫管理から提出用書類作成までについてです。  エクセルで入力用フォームを作り、1列めに受付日付、2列目に商品名をいれ、その後にLOTや数値、文字などを何項目か入力しています。その結果を、それぞれの商品名に合わせた提出書類(それぞれの品物によって違う、指定された型の書類なのです。)に入力し、書類を作成しています。  そこで、できれば書類を作成したい行を1行選択して、マクロを実行するとすぐにLOTや数値、文字が入力されそれぞれの品物にあった提出書類が完成できるようにしたいのです。  私はパソコンに詳しくないため、現在は入力用とは別のシート「シートB」に、商品名ごとのマクロを1つづつ作っておき、入力用フォームから、書類を作成したい商品の行を1行コピーして「シートB」の商品ごとの入力欄に貼り付け、それぞれの商品名ごとのマクロ実行。で対応しています。。。このままでは入力用フォームを見て書類作成するよりは多少楽かな?なくらいです。良い改善方法をご存知でしたらぜひ教えていただきたいです。よろしくお願いします。

  • エクセルの在庫管理からレポート作成について

     こんにちは もしお時間があるようでしたら教えてただきたいです。内容は、会社での在庫管理から提出用書類作成までについてです。  エクセルで入力用フォームを作り、1列めに受付日付、2列目に商品名をいれ、その後にLOTや数値、文字などを何項目か入力しています。その結果を、それぞれの商品名に合わせた提出書類(それぞれの品物によって違う、指定された型の書類なのです。)に入力し、書類を作成しています。  そこで、できれば書類を作成したい行を1行選択して、マクロを実行するとすぐにLOTや数値、文字が入力されそれぞれの品物にあった提出書類が完成できるようにしたいのです。  私はパソコンに詳しくないため、現在は入力用とは別のシート「シートB」に、商品名ごとのマクロを1つづつ作っておき、入力用フォームから、書類を作成したい商品の行を1行コピーして「シートB」の商品ごとの入力欄に貼り付け、それぞれの商品名ごとのマクロ実行。で対応しています。。。このままでは入力用フォームを見て書類作成するよりは多少楽かな?なくらいです。良い改善方法をご存知でしたらぜひ教えていただきたいです。よろしくお願いします。

  • エクセルで入出庫数管理表

    倉庫で働いている者です。毎日メーカーから送ってもらうデータをプリントアウトして、商品をピッキングする作業しています。 ただ、在庫管理に関しては紙に書いて管理しているので、消しゴムでの紙がふやけ、手間です。 そこでエクセルで管理できる方法を教えてください。もしくは、どの本で勉強するのか知りたいです メーカーからは、A列に商品名 B列に出荷数 が記入されたデーターがきます。 自分としては、Sheet1に倉庫の現在庫数。A列に商品名 B列に現在庫数(これは自分で作成する) Sheet2に送られたデーターを張り付けると、Sheet1の現在庫数が自動で計算され引き算される 説明下手で申し訳ないです。 そんなことは可能でしょうか??

  • vba 作成

    博学の方ご教授願います。 office2007のVBAで下記の様なものを作りたいのでお願いします。 SHEET1 A列に管理番号 C列にお客様名 D列に通し番号 H列に入庫日 が入ったシート があり在庫に一つづつ入庫シートを張り付けています。 今は一枚ずつ手で書いてますがそれを自動で出せるようにしたいのです。 SHEET2にその入庫シートを作りA列C列D列H列を1から順番にSHEET2の入庫シート に入れた上プリントアウト出来るものを作成したいです。 希望はSHEET2のC1にSHEET1のH列の入庫日を SHEET2のE2にSHEET1のD列の通し番号 SHEET2のE3にSHEET1のC列のお客様名 SHEET2のL1にSHEET1のA列の管理番号 を 1から順番に自動入力した上プリントアウト出来ればありがたいです。

専門家に質問してみよう