プロが教える店舗&オフィスのセキュリティ対策術

ユーザーフォームのテキスト氏名、日付1、日付2を入力したらExcel表のマッチした氏名行の日付を○印で入力するようなVBAのコードがありますでしょうか。どなたかご教授のほどよろしくお願いします。

「テキスト氏名、日付とExcel表の連動」の質問画像

A 回答 (2件)

途中まででも出来ているのでしょうか、最初から作ってくれ?


しばらくお付き合いしますが、まず
>日付1、日付2を入力したら
ではなく、入力後、ボタンを押したらにしましょう、ミスが少なくなります。
ここで、3行目が数値なのか、日付なのかが問題です。
この部分は、同じタイプを入力させるべきですね。
更に、テキストフォームでなく、リストボックスを使いましょう。
入力ミスがなくなりますし、コードを書く上でエラー処理が必要でなくなります。
テキスト氏名は A列の中から選択
日付は     3行目から選択するようにすれば
それぞれに、リストインデックスが数値で得られますので、何行目の何列目というのは
検索をかける必要なく得られます。

それと、添付の画像が印刷か何かの為に必要な様式ですよね、私であれば、別途
 A  B   C
氏名 日付1 日付2
・・・・
とデータを確保するシートを準備して、フォーム上のボタンを押すとデータが記録されていく
表示されているシートには、関数で所定の位置に○が表示される様にしますが
如何でしょうか?
    • good
    • 0
この回答へのお礼

有難うございます。フォーム内の入力内容を別シート写しその後の関数で本来のシートにマークでできるよう頑張ります。

お礼日時:2013/02/11 21:41

No1です。

ユーザーフォームを使わずに一案です。

データ入力用のシートを準備します(仮に Sheet2)
 A   B    C   D   E
氏名  日付1  日付2 作業列 作業列
うめだ  1/3   1/7
・・・・
と入力していきます
D列には =A2&B4
E列には =A2&C2 と入れてたっぷりと下までコピーしておきます。

目的のシートの3行目には 日付で入力します。
表示形式で 日だけの表示にすれば、見た目は同じになります。
B4セルに
=IF(COUNTIF(Sheet2!$D:$E,$A4&B$3),"○","")
といれて右へコピー、下へコピーしておけば、Sheet2にデータを入力するだけで
ご希望のセルに○が表示されます。
ユーザーフォームで入力するより、セルに直接入力した方が簡単でしょうし
修正も簡単ですよ。
また、入力したデータは、消去せずにず~と残しておくと後あと、便利です。
    • good
    • 0
この回答へのお礼

有難うございます。簡単そうですのでやってみます。

お礼日時:2013/02/11 21:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!