現在、受注登録の為の表をエクセルで作成しています。
登録しやすくする為、対象セルをいちいち探して登録しなくていい様にしたいと思っています。
内容
------------------------
A2 からA500まで取引先名称(かぶりあり)
B2 からB500 まで商品名(かぶりあり)
C1からAF1まで日付が入っています(同じ日付はない)
ユーザーフォームの2つのリストボックス上に取引先と商品名が表示されていて、
それぞれ選択すると ユーザーフォームのテキストボックス1に2つの値が表示されます。
ユーザーフォーム上の別のテキストボックス2に日付を入れて、また別のテキストボックス3に
受注数を入れてコマンドボタン(登録)で確定を押すと取引先・商品名(列)と日付(行)の交差するセルにその値を加算したい。
申し訳ございませんがご教授の程、宜しくお願いいたします。
No.2ベストアンサー
- 回答日時:
マクロでイチイチと探して加算していくだけです。
private sub CommandButton1_Click()
dim r as range
dim r0 as string
dim c as range
’以下ダラダラとデータチェック
if me.textbox1 = "" then
msgbox "SELECT LISTBOXES"
exit sub
end if
if me.textbox2 = "" then
msgbox "INPUT DATE"
exit sub
end if
if me.textbox3 = "" then
msgbox "INPUT NUMBER"
exit sub
end if
set c = worksheets("Sheet1").range("1:1").find(what:=datevalue(me.textbox2), lookin:=xlformulas, lookat:=xlwhole)
if c is nothing then
msgbox "NOT MATCH IN DATE"
exit sub
end if
set r = worksheets("Sheet1").range("A:A").find(what:=listbox1.value, lookin:=xlvalues, lookat:=xlwhole)
if r is nothing then
msgbox "NOT MATCH IN A"
exit sub
end if
’本番
r0 = r.address
do
if r.offset(0, 1) = me.listbox2.value then
with worksheets("Sheet1").cells(r.row, c.column)
.value = .value + me.textbox3.value
end with
exit sub
end if
set r = worksheets("Sheet1").range("A:A").findnext(r)
loop until r.address = r0
msgbox "NOT MATCH IN B"
end sub
No.1
- 回答日時:
まず、発想を変えてください。
データを日付(横方向)に伸ばしていくと必ず限界が来ます。
また、横移動もマウス操作が出来ませんよね。
パソコンは、データは縦へ蓄積すると使いやすくなるように
造られています。
それと、データを加算して保持することです。
一度、ミス入力をしてしまうと、どこでミスが起きたかさえ
わからなくなります。
一般的な方法
1、ユーザーフォームで取引先・商品名を選択、ボタンを押すと
2、データシートへ下方向にデータが記述されていく
3、必要に応じて、決まっているフォーマットの書式に表示されるような
関数などを考える。
1、の際の日付も毎日、当日の業務ができれば、日付の入力も不要になりますよね。
データも常に最新の状態ということです。
ご回答ありがとうございます!
データベースの様に縦に蓄積して関数で抜き出す事も検討&実際に試験してみたのですが・・・
商品点数が多く、関数を入れると大変重たくなってしまいます。
そこで、なるべく関数を使わず作成しようと思い至りました。
ただ、やはり入力間違い等の検証等にはデータシートが必要となりますので、色々と検討してみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Access(アクセス) Dlookupにエラーがでてしまう 1 2022/10/31 14:35
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Visual Basic(VBA) Excel VBA 同じ名前のフォルダがあれば作成したブックを格納するマクロをつくりたい 2 2023/01/16 16:19
- Visual Basic(VBA) Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです 2 2023/03/05 02:44
- Excel(エクセル) 重複データの抽出について 2 2023/07/21 14:52
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelについて教えてください
-
【Excel】数字を3倍にし、なお...
-
エクセルVBA、別ブックへ転記す...
-
エクセル マクロ チェックボックス
-
Excel分析ツールでのポアソン回...
-
【マクロ】顧客番号にて一致さ...
-
【マクロ】名前を保存する際に...
-
エクセルのデーターが2か月前の...
-
UNIQUE関数が使えないバージョ...
-
エクセル共有したが、アクセス...
-
Excelでセルの値が同じか...
-
(マクロ)データをAブックからB...
-
Excel フィルターを掛けた状態...
-
エクセル②
-
エクセルを使っていて2024/5/15...
-
Googleスプレッドシートでファ...
-
エクセルで不等号記号(≠)が上に...
-
Win10でExcel VBA GetPhonetic...
-
Excelで縦軸の書式を0:00形式の...
-
エクセル:一覧表に存在する文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報