初心者的な質問になりますが、宜しくお願い致します。
現在、部署で在庫管理を明確化するためにエクセルに在庫の部品名、個数、どこで保管されているかを表にして管理しています。そこに、検索できるように関数で検索表を作成しました。
ここまで問題なくできたのですが、ここからやりたいことをどのように作成すればいいのかアドバイスをお願いしたく質問させて頂きます。
やりたいことは、あるセルに日付、部品名、使用内容という3つの項目を入力したら、別シートに転記するというものです。
具体的に記述すると、
sheet1のA2に日付、B2に部品名、C2に使用内容を記述します。
その内容をsheet2のA2に日付、B2に部品名、C3に使用内容を転記するのですが、
単純に=Sheet1!A2とすれば、表示されます。が!!!
やりたいことはSheet1のA2、B2、C2に入力された内容を転記したときに、Sheet2では下に追加する方向にしたいのです。
例として書いてみると
sheet1に
A2に2010/11/22
B2にA
C2にA社保守部品として使用
と記述します。
その内容をsheet2のA2に日付、B2に部品名、C2に使用内容を転記します。
次の日にまた在庫から部品を使用したとします。
上記と同じように
A2に2010/11/23
B2にB
C2にB社保守部品として使用
と記述したときに
sheet2のA3、B3、C3に記述していくようにしたいと考えています。
上記で記述したように=sheet1!A2であれば、sheet1に表記が残っていれば、sheet2にも同じように表記されています。
しかし、sheet1のA2、B2、C2を消去してしまうと、同様にsheet2も消えてしまいます。
sheet2は一度記述したら内容を保持しててほしいのと、
書き込み内容があるごとにsheet2は追記していくようにしたい
ということです。
この場合、マクロやVBAで作成するほうがいいのか?それとも関数でできてしまうのか?
というところで悩んでいます。
私個人としては簡単にできるほうがいいのですが、VBAがまだ未熟なので、できれば関数でできるようならベストです。
VBAを勉強してやればいいのでは?と回答されてしまうとそれまでなのですが、現在業務上、在庫管理システムがそこまでしっかりされていないので、部署的にできるだけ早くパソコン上で在庫確認ができて、個数をしっかり管理したい。
そして、使用内容を明確にし、無駄を省きたいということを実践していきたいということで、今回質問させていただきました。
ちなみに検索内容などはすべて関数で作成しております。
どうぞ、ご教授のほど宜しくお願い致します。
No.2
- 回答日時:
記録として残しておきたいのならVBAでするしかないですね。
では全自動で実行するマクロの一例です。
手順は下記のとおりです。
1. 該当するシート(Sheet1)のタブを右クリックして、[コードの表示]。
2. 出てきた白い所に、以下のコードを貼付けます。
'********これより下**********
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
If Intersect(Target, Range("A2:C2")) Is Nothing Then Exit Sub
With Sheets("Sheet2")
i = .Cells(Rows.Count, "A").End(xlUp).Offset(1).Row
.Range(.Cells(i, "A"), .Cells(i, "C")).Value = Range("A2:C2").Value
End With
End Sub
'********これより上**********
3.Alt+F11キーでワークシートへもどります。
これでOK
A2からC2に入力する都度自動で実行されます。
回答ありがとうございます。
さらに、VBAのコードまでありがとうございます。
早速やってみましたが、望んでいるような動きになりました。
しかし、一度入力ミスをするとそのミスまで反映されるようです。
少し私自身でも調べながらやってみます。
一番いいのは入力後釦など設置して釦押下したら転記できるような方向にしてみようと思います。
No.3ベストアンサー
- 回答日時:
ANo2 です。
すみません。駄目の見本のようなコードを書いてしまいました。
お昼に何を食べようか考えていて、まるで初心者のようなミスをしておりました。
(おなかが膨れたら気が付きました)
赤面です。(///▽///)
修正します。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
If Intersect(Target, Range("A2:C2")) Is Nothing Then Exit Sub
If Target.Count > 1 Then
If Application.CountA(Target) > 0 Then
MsgBox "複数セルの同時入力しないでください。"
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
Exit Sub
End If
End If
With Sheets("Sheet2")
i = .Cells(Rows.Count, Target.Column).End(xlUp).Offset(1).Row
.Cells(i, Target.Column).Value = Target.Value
End With
End Sub
3セルとも確定後
ボタンを押して転記なら
以下を標準モジュールに書いて、ワークシート上に配置した「フォーム」のボタンにセットしてください。
Sub Tenki()
Dim i As Long
With Sheets("Sheet2")
i = .Cells(Rows.Count, "A").End(xlUp).Offset(1).Row
.Range(.Cells(i, "A"), .Cells(i, "C")).Value = Sheets("Sheet1").Range("A2:C2").Value
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Visual Basic(VBA) VBA リスト表示していますが 3 2023/05/18 12:12
- Visual Basic(VBA) VBA For Each 〜 複数条件について 3 2022/10/20 20:05
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBA 別sheetからの転記なのですが 2 2023/05/22 15:55
- その他(Microsoft Office) オフィス365のエクセル 3 2023/06/29 13:10
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SS400材とSPHC材の違い
-
散水用ホースの蛇口口金が抜け...
-
ゴム硬さ ショアA90とA95の違...
-
出荷時の数の数え間違いを防ぐ方法
-
名前わからない部品しりたい
-
画像のような部品を探していま...
-
電子部品と電気部品の違い
-
【工場ライン作業】腕を素早く...
-
【VBA】元のシート内の文字列を...
-
取り合い寸法とはどういった所...
-
アクセスの初心者の質問です(...
-
NEFUSIとは何ですか?教えて下さい
-
『ワーク』を英訳すると?
-
麻酔器と気化器の接続について
-
部品共通化によるコストダウン...
-
製造業で仕事をしていて、やり...
-
ガスコンロの発送方法を教えて...
-
エアー配管から分岐させて掃除...
-
部品と備品の管理に関して
-
トヨタのカンバン方式って?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SS400材とSPHC材の違い
-
散水用ホースの蛇口口金が抜け...
-
『ワーク』を英訳すると?
-
VAIOのコンピュータの評判: 教...
-
電子部品と電気部品の違い
-
名前わからない部品しりたい
-
電子部品の略語
-
製造中止後の部品供給期間
-
アクセスの初心者の質問です(...
-
何年に渡ってメーカーは修理部...
-
取り合い寸法とはどういった所...
-
部品のカラーって?? 機械部品...
-
出荷時の数の数え間違いを防ぐ方法
-
画像のような部品を探していま...
-
家庭用エアコンの正面カバーの...
-
義務付けられた製品の部品供給年数
-
nominalは定格と訳してよいでし...
-
ガスコンロの発送方法を教えて...
-
ゴム硬さ ショアA90とA95の違...
-
【工場ライン作業】腕を素早く...
おすすめ情報