- 締切済み
エクセルでの自動転記 検索ボタン
sheets1 A1 B1 C1 D1 E1 F1 日付 空白 名前 ふりがな 性別 備考 ↓ 順番に転記 ユーザーホーム コマンドボタンなどを使い sheets1の対応する場所に転記 また 検索ボタンで 名前検索をしたいのですが 検索は 苗字で検索 複数あれば複数表示 該当なければ表示しないか 0もしくは該当なし こういったものは 簡単にできますでしょうか?
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- EXCEL VBA 転記 条件分岐 新規転記 上書転記 プログラム
いつも御世話になっております。 以下のことをしたいのですが、詰まってしまいました。 皆様の力をお借りしたいと思い、書き込ませていただきます。 ・ボタン1をクリックすると、base(転記元)のG列に書かれた事項と同一のシート(転記先)へ転記する(各シートA,B,Cへ転記) ・転記先のE列を見て、既存のものであれば、上書きする ・転記先のE列を見て、新規のものであれば、空いている行を探し転記する。 (例) base(転記元シート) E1|F1|G1 名前 収入 シート先 月曜 50 A 火曜 100 A 木曜 150 C 土曜 50 A 日曜 100 B 水曜 150 A 金曜 10 C 転記実行前 A(転記先シート) E1|F1|G1 名前 収入 シート先 月曜 A 火曜 A 土曜 A 転記実行後 A(転記先シート) E1|F1|G1 名前 収入 シート先 月曜 50 A 火曜 100 A 土曜 50 A 水曜 150 A 以下に作成したプログラムを記述します。 が、IF文に関するエラーが生じております。 Sub ボタン1_Click() Dim dstSheet As Worksheet Dim srcRow As Long Dim dstRow As Long Dim name As Integer Dim obj As Object Set srcSheet = Sheets("base") For srcRow = 2 To srcSheet.Range("G" & Rows.Count).End(xlUp).Row '元シートのデータ範囲で繰り返し(シート先は必須なのでG列でチェック) If srcSheet.Range("G" & srcRow).Value <> "" Then '(転記先シート名)が空白でない場合に実行(1) Set dstSheet = Sheets(srcSheet.Range("G" & srcRow).Value) 'シート取得(1) name = Sheets(srcSheet.Range("E" & srcRow).Value) '名前を取得(1) Set obj = Worksheets(dstSheet).Cells.Find(name) '名前を転記先の中で検索(1) End If '(1)の終了 If obj Is Nothing Then '検索でかからなかったら、新たに空白の行を見つけて転記元から転記先へ転記する(3) '以下3行問題点???? dstRow = dstSheet.Range("G" & Rows.Count).End(xlUp).Row + 1 '転記先行取得 If dstSheet.Range("E2") = "" Then dstRow = 1 '質問で転記先には1行目からなので、それに対応 dstSheet.Range("E" & dstRow).Resize(1, 3).Value = srcSheet.Range("E" & srcRow).Resize(1, 3).Value 'データ転記 End If Else '検索でかかったら、該当の行のアドレスを割り出し、特定の範囲を上書きする。(4) lngYLine = obj.Row intXLine = obj.Column With Sheets(dstSheet) '検索でかかったら、該当の行のアドレスを割り出し、特定の範囲を上書きする。(4) dstSheet.Range("E" & lngYLine).Resize(1, 3).Value = srcSheet.Range("E" & srcRow).Resize(1, 3).Value 'データ転記(4) End If '(3),(4)の終了 Set obj = Nothing 'Objの初期化 Next End Sub
- ベストアンサー
- Visual Basic
- フリガナ検索について
同じような質問があったらすみません。 過去質問も見ましたが、あまりよく理解できなかったので質問させていただきます。 顧客名簿のフリガナ検索をしたいのです。 テーブルには顧客情報に必要な、名前 フリガナ 住所 電話番号 とあり、フォームもそのテーブルを元に作成しています。 そして、そのフォームにテキストボックスをつくり、コマンドボタンで 実行をしたいのです。表示方法はフォームで・・・・。 例えば「サトウ」とテキストボックスに入力し、コマンドボタンを押すごとに、「サトウ」の苗字の人がフォームで次々と表示されるようなのが理想です。 お時間があるときに、教えていただけないでしょうか? 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- アクセスでフリガナ検索をしたいのですが
フリガナが濁点の場合はどうやって検索したらよいのでしょうか? ※状況※ 従業員名簿があります。 名前・フリガナ・住所です。 【た】というコマンドを作成しました。 このコマンドを押す事によってフリガナが【タ】【ダ】で始まる人のみ表示 をさせたいのです。
- ベストアンサー
- オフィス系ソフト
- Excel VBA 別ブックを開かずに転記
Excel2007のユーザーフォームについて教えてください。 ユーザーフォームを以下のように作成しました。 ■テキストボックス6つ テキストボックス2→件名 テキストボックス3→数 テキストボックス4→名前 テキストボックス5→備考1 テキストボックス6→備考2 ■コマンドボタンが1と3の2つです。 コマンドボタン1→転記と印刷 コマンドボタン3→終了 ■シートの構成 sheet"作成と一覧" 1行目を以下の項目で使用しています。 A1→番号(テキストボックス1を表示) B1→件名(テキストボックス2を表示) C1→数(テキストボックス3を表示) sheet"印刷" A1→番号(テキストボックス1を表示) A2→件名(テキストボックス2を表示) B2→数(テキストボックス3を表示) A3→名前(テキストボックス4を表示) A4→備考1(テキストボックス5を表示) A5→備考2(テキストボックス6を表示) テキストボックスに入力した値を2つのシートにそれぞれ転記して、 シート"印刷"を2部印刷しています。 ここまで以下のコードで行いました。 Private Sub CommandButton1_Click() '入力値を作成と一覧シートに転記 行 = ActiveCell.Row 列 = ActiveCell.Column Cells(行, 列) = UserForm1.TextBox1.Value Cells(行, 列 + 1) = UserForm1.TextBox2.Value Cells(行, 列 + 2) = UserForm1.TextBox3.Value '入力値を印刷シートにに転記 Worksheets("印刷").Range("A1") = UserForm1.TextBox1.Value Worksheets("印刷").Range("A2") = UserForm1.TextBox2.Value Worksheets("印刷").Range("B2") = UserForm1.TextBox3.Value Worksheets("印刷").Range("A3") = UserForm1.TextBox4.Value Worksheets("印刷").Range("A4") = UserForm1.TextBox5.Value Worksheets("印刷").Range("A5") = UserForm1.TextBox6.Value 部数 = 2 Worksheets("印刷").PrintOut Copies:=部数, Collate:=True UserForm1.TextBox1.SetFocus Cells(行 + 1, 列).Select End Sub Private Sub CommandButton3_Click() '終了ボタンで値をクリアしてウィンドウを閉じる Dim Ctrl As Control For Each Ctrl In Controls If TypeName(Ctrl) = "TextBox" Then _ Ctrl.Value = "" Next Ctrl Unload Me End Sub 教えて頂きたい事なのですが・・・ コマンドボタン1の入力値を作成と一覧シートに転記の所なのですが、 アクティブセルではなく、常にA列の最後の値の次の空白行に転記するようにしたい場合、 どのように書き換えればいいのでしょうか? もう一点ですが、 別ブックにテキストボックス1から6が入力された一覧があります。 この別ブックを開かずに、 テキストボックス1に入力された番号を探して、 テキストボックス2から6に表示されるようにしたいのです。 うまく説明できないのですが・・・ 別ブックの名前は"たちつ" 別ブックは、あいうサーバーの かきくフォルダの中のさしすフォルダです。 ブック"たちつ"に"一覧"というシートがあります。 一覧のシートのD列の3行目以降には番号が入力されており、日々増えています。 テキストボックス1に入力された番号を、 一覧のD列から探し、 I列の値をテキストボックス2へ K列の値をテキストボックス3へ L列の値をテキストボックス4へ M列の値をテキストボックス5へ J列の値をテキストボックス6へ転記させたいのです。 同じブックの別シートを参照するときには Application.VLookupで出来たのですが、 マクロの記録でやってみても、解決できませんでした。 コードをご覧いただいてお分かりの通り、 VBA超初心者です。 ネットを見ながら試行錯誤している状況です。 コードの間違い等あるかもしれませんが、 ご教示よろしくお願いいたします。
- 締切済み
- Excel(エクセル)
- エクセル 行ごと検索結果を表示したい
A B C D E F G H I 1 カナ 漢字 住所 備考 (空白) カナ 漢字 住所 備考 2 カナ 漢字 住所 備考 (空白) カナ 漢字 住所 備考 というような住所録があります。 別シートのA1セルに検索したいキーワードを入力し、 該当するセル全てを表示できるようにしたいのです。 ただ、検索結果はA1~D1、F1~I1、 というようにセットで表示できるように。 このようなことができるような方法(関数?)はありませんでしょうか? エクセル初心者ですので、詳しく教えていただけると助かります。 よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- エクセル2010のvbaとコマンドボタンについて
vbaで押されたコマンドボタンの (ActiveXコントロールのイメージやラベルなど) 名前を取得することはできますか? ActiveControl.NameはSheets(1)をつけると オブジェクトは、このプロパティまたはメゾットをサポートしていません とエラーが出て、Sheets(1).を取るとオブジェクトが必要です とエラーが出て上手くいきません フォームコントロールのボタンは右クリックできないので ActiveXコントロールのコマンドボタンを使用しています 回答お願いします
- ベストアンサー
- その他MS Office製品
- エクセルVBA ユーザーフォーム 検索
現在VBAにてユーザーフォームにて入力したデータをシート1に転記するものを作成しました。 この転記したデータを生かして作業したいと考えております。 データは商品データで A B C E F 商品コード 商品名 区分 単価 備考 となっており ユーザーフォームも TEXTBOX1=A TEXTBOX2=B と言う様になってます。 現在考えているのがこのデータの一部を変更したい場合、コマンドボタンを押すと商品コード入力用boxがでてきて、商品コードを入力するとA列から検索し該当する商品データをユーザーフォーム上に表示するようにしたいのです。 そのデータがA75行にあったとします。 そのユーザーフォーム上で単価を変更した場合検索した行(A75行)にそのまま上書きする様にしたいです。 説明がうまくできてないかも知れませんが、どなたかご教授願います。
- 締切済み
- オフィス系ソフト
- エクセルVBA データの転記に関して質問です
在庫管理の為に以下の通りに作成をしています。 (1)シート1からシート2へデータを転記したい。 (2)シート1からシート2へデータを転記した時シート2にはデータが蓄積されていきます (3)シート1のコピー範囲には空白のセルが含まれています。 (4)シート1の空欄の一部は数式による空白があります。 シート1 C8入庫年月日 C9伝票番号 C10品名 C11品番 C12単位 C13数量 C14単価 C15金額 C16入荷先 C17備考 シート2 C4入庫年月日 C5伝票番号 C6品名 C7品番 C8単位 C9入庫数量 C10単価 C11金額 C12入荷先 *C17は転記しません。 以下のとおりに記述しました。 Dim ab As Long Dim cd As Long Range("C9:k18").Copy Sheets("1").Select Cells(Rows.Count, 3).End(xlUp).Offset(1).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=True, Transpose:=False ab = Range("H" & Rows.Count).End(xlUp).Row For cd = ab To ab + 10 Step 1 If ActiveSheet.Cells(cd, 8) = "" Then Rows(cd).Delete shift:=xlUp End If Next cd Sheets("2").Select Application.CutCopyMode = False Range("e6").Select End Sub この記述で実行すると、1度目の転記はうまくいくのですが2回目の転記をしたときに空白行が入り、空白行の下に2回目の転記が行われてしまいます。 どうしたら空白行を無視して2回目の転記がうまくいくでしょうか? VBA初心者です。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAのボタン操作について
sheet1にコマンドボタン(CommandButton1)を貼り付けて sheet2にもコマンドボタン(CommandButton1)を貼り付けています。 sheet1のコマンドボタンを押すとVBAで処理をして sheet2を表示後 自動的にsheet2のコマンドボタンにかかれたVBAの処理をしたいのですがうまくいきません。 教えてください。 環境windows2000 office 2000 sheet1のボタンの最後 Sheets("2").Select ActiveSheet.Shapes("CommandButton1").Select でうまくいきません。
- ベストアンサー
- その他(プログラミング・開発)
- エクセル 検索結果の抽出方法
A B C D E F G H I 1 カナ 漢字 住所 備考 (空白) カナ 漢字 住所 備考 2 カナ 漢字 住所 備考 (空白) カナ 漢字 住所 備考 というような住所録があるのですが、 別シートで検索結果を表示できるようにしたいのです。 検索方法は「カナ」であったり「漢字」であったりと様々 検索結果全てをA~D、F~Iというようにまとめて表示 このようなことができるような方法(関数?)はありませんでしょうか? よろしくお願いします。
- ベストアンサー
- その他MS Office製品
補足
tom04さん 回答ありがとうございます。 だいぶ エクセルから 離れていて2010ですので コマンドボタンだすのも手間取りましたが・・・・ すごいです。できるんですね。 検索に関しての ご指導ありがとうございます。