- ベストアンサー
Excel 集計フォーム
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
TextBoxが上から1,2,3でCheckBoxはCheckBox1として書き込みボタンがCommandButton1とした場合です。 D列は注文品ごとの累計だと考えています。 部署1だけのコードですので、部署2は同じような感じで追加してください。 Private Sub CommandButton1_Click() Dim LastRow As Long If Me.CheckBox1 = True Then LastRow = Cells(Rows.Count, "A").End(xlUp).Row Cells(LastRow + 1, "A").Value = Me.TextBox1.Value Cells(LastRow + 1, "B").Value = Me.TextBox2.Value Cells(LastRow + 1, "C").Value = Me.TextBox3.Value Cells(LastRow + 1, "D").Value = WorksheetFunction.SumIf(Range(Cells(3, "B"), Cells(LastRow + 1, "B")), Cells(LastRow + 1, "B"), Range(Cells(3, "C"), Cells(LastRow + 1, "C"))) End If End Sub
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
質問の表題には,VBAの質問であることを明記せよ。読者層が変わると思う。 ーー そして、少数のデータ例と画像しか挙げてない。何をしたいのか良く判らない。 質問文には書くとしたら、やりたいことを1歩ずつ、短い文章にして箇条書きに書け。 読者に負担をかけないのが礼儀だ。 例 ・Userorm2のユーザーフォームを使っているから,部署2の方を扱う(ーー>よく見ると、そう ではなく、部署1も、部署2のデータも1回で入力するらしい。ーー>異例だろう?) UserForm1はどうなった? ・入力したのがUserorm2で、「書き込み」ボタンをclickすると、 日付列に日付1/26をセットする(部署1か、部署2か、どっち両方?) 部署1と部署2のチェックボックスで、左右されるのか? 注文品列に砂糖をセット(部署1か部署2か両方か?チェックボックスで左右される?) フォームの数量欄が2つに分かれているが、チェックボタンのONに従って、数量1と数量 2をセットするのか? 私だったらやらない複雑な仕様だと思う。判り難い仕様だ。 ーー 以上でやりたいことを理解すれば、(本人には判っているから)コードの書き方は別に難しいところはないでしょう。IF文で判別するぐらいだろう。 ・書き込みコマンドボタンのクリックイベントで、下記を行う。 ・部署1と部署2のチェックボックスのONを捉えておいて,入力する列でセットするかどうかを左右する ・部署1と部署2の現時点での、データ最終行は、End(xlUp).Rowで採れる。 何処が判らないのか?小生が問題の意図を取り違えている? .
お礼
やりたいこと等がまとまっていない質問でしたのに ご回答とご指摘をしていただきありがとうございました。
- kkkkkm
- ベストアンサー率66% (1729/2599)
No.1の追加です。 D列を計算式のままにしたい場合は Cells(LastRow + 1, "D").Formula = "=SUMIF($B$3:B" & LastRow + 1 & ",B" & LastRow + 1 & ",$C$3:C" & LastRow + 1 & ")" なお、テキストボックスの未入力チェックは省略していますので、追加してください。 日付のテキストボックスでしたらたとえば If Me.TextBox1 = "" Or IsDate(Me.TextBox1) <> True Then MsgBox "日付が未入力、もしくは日付ではありません", vbInformation Me.TextBox1.SetFocus End If
お礼
やりたいこと等がまとまっていない質問でしたのに ピンポイントなご回答をしていただきありがとうございました。 無事組み込むことができ仕事がとても捗ります。 本当にありがとうございました