• ベストアンサー

ユーザフォームを使ってのデータの書き換え(エクセル)

fumufumu_2006の回答

回答No.3

ANo.3です。 すみません、質問をよく読まなかったので、現在の単価を旧単価にする部分が抜けていました。 また、ANo.3ではApplication.Matchを使いましたが、ANo.2さんのFindの方がいいと思います。 >ControlSourceのプロパティが便利な理由を教えていただけると嬉しいです。 ControlSourceを設定すると、そのTextBoxが、指定したセルへの窓のようになり、テキストボックスの内容を変更すると同時にセルの値が変更され、同様にセルの値を変更するとテキストボックスの値が変わります。 なので、単純な登録や変更なら便利なんですが、今回のような場合では、フォーム上で旧価格と新価格を入れ替える作業を行うと、その時点でセルの内容も変わってしまうので、その回避を考えるとあまりいい方法ではありませんでした。

cheesepie
質問者

お礼

ありがとうございました!! No.2さんのを参考に何とかできました。 そして、ControlSource、便利ですね。 違うところで上手く使えて大満足です。 最後まで相談にのってくださりありがとうございました。

関連するQ&A

  • エクセルVBA ユーザーフォーム 検索

    現在VBAにてユーザーフォームにて入力したデータをシート1に転記するものを作成しました。 この転記したデータを生かして作業したいと考えております。 データは商品データで A    B C E F 商品コード 商品名  区分  単価  備考 となっており ユーザーフォームも TEXTBOX1=A TEXTBOX2=B と言う様になってます。 現在考えているのがこのデータの一部を変更したい場合、コマンドボタンを押すと商品コード入力用boxがでてきて、商品コードを入力するとA列から検索し該当する商品データをユーザーフォーム上に表示するようにしたいのです。 そのデータがA75行にあったとします。 そのユーザーフォーム上で単価を変更した場合検索した行(A75行)にそのまま上書きする様にしたいです。 説明がうまくできてないかも知れませんが、どなたかご教授願います。

  • エクセル VBA ユーザーフォームで検索したいのですが

    つい昨日触り始めた大初心者です。。 エクセルシートにて 数値を記した列と、詳細を記した列があります。 ユーザーフォームにて textboxに数値を入力し、ボタンをクリックすると 検索をして、ユーザーフォーム内のlabelに詳細が表示される、といったvbaを書いているのですが、どうにもうまくいきません。 また、textboxに検索範囲にない数値が入力されたときには Labelに「なし」と表示させたいのですが、 エラーが出てしまい、その処理もやはりうまく出来ません。 どなたかご教授いただけますでしょうか。

  • エクセル ユーザーフォームからデータに書き込む

    見積書とデータを連動させて自動入力していますが、 データベースのほうをユーザーフォームを作って入力させるつもりです。 その時、物件名は1つで製品名(内訳)が1種類から6種類くらいまで記入しなければいけない場合、 データベースのほうに、内訳の数だけ行を増やして書き込むにはどのようにしたらいいのでしょうか? 行を増やすという考えも、素人考えなので他に効率のいい方法が思いつかないのですが・・・。 ちなみにデータベースは、Aから 見積/請求/物件No/見積日付/正式名称/担当者/受注日/納品日/物件名/ 製品名/ 数量/単価/合計 製品名ごとに数量、単価、合計があるのでこちらにも反映してきます。 初心者のため、質問自体ちゃんとできているか不安ですがご教授くださいませ。

  • エクセルユーザーフォームのカーソル位置

    どうしても分からないのでお助け下さい(>_<) エクセルでユーザーフォームを作っています。 TextBox1に品番を入れたら、Label1に品名を表示させています。 このとき、TextBox1に存在しない品番を入力した場合は、 再度入れなおしをさせたいのです。 そこで、カーソルをもう一度TextBox1に持っていきたいのです。 しかし、どうやってもタブオーダーでTextBox1の次にあるTextBox2に カーソルが行ってしまいます。 どうしたらもう一度TextBox1にカーソルを持っていくことができますか? ちなみに品名を表示するモジュールを書いておきます。 このSetFocusが違うということは分かるのですが・・・。 Private Sub TextBox1_AfterUpdate() Dim tmp As Range, a a = Me.TextBox1.Value   Set tmp = Sheets(1).Columns(1).Find(a, , xlWhole)   If tmp Is Nothing Then     Me.Label1.Caption = "品番が誤っています。再度入力して下さい"     Me.TextBox1.SetFocus     Exit Sub   Else     Me.Label1 = tmp.Offset(0, 1)   End If End Sub

  • VBA_ユーザーホーム内の処理について

    エクセルでVBAを使用して、データ整理のためのツールを作っています。ユーザーホームを使って、作っているのですが、例えば、複数のCOMBOBOX(例:combobox1~3とします。)の選択値(例:1~3とします)の和をTEXTBOXかLABELでユーザーホーム内に表示したいのですが、どうも、うまくいきません。sheet(セル)にUPDATEした数字を読んできた和を表示するのではなく、単純に入力値の和を一時的に表示してくれればいいのです。つまり、何も入力されていない場合は、”0”と表示していて欲しいのです。同様に複数のTEXTBOX(例:TEXTBOX1~3とします)の入力値(例:1,3,5とします)の和(=9)をTEXTBOXかLABELでユーザーホーム内に表示したいのです。よろしくお願いします。コードを頂けると助かります。

  • ユーザフォーム上のVLookUp関数について教えていただきたいのですが。

    UserForm1にTextBox1とTexrBox2があり、 TextBox1に顧客コードを入力すると、勝手にTextBox2に顧客名が入るということがしたいのです。引っ張ってくるデータは実際UserForm1を実行するbook1のアクティブシートではなく、別のbook2.sheets("顧客リスト")から反映させたいのですが、可能でしょうか。TextBoxでなく、Labelでないと不可能なんでしょうか。 検索値=TextBox1.Value 検索範囲=Workbooks("顧客情報").Sheets("顧客リスト").Range("A:B") 列番号=2 計算方法=False といったかんじなのですが、どうかよろしくお願いいたします。

  • エクセル ユーザーフォームで小数点以下を・・・

    エクセルのフォームのTextboxで消費税の計算をしています。 その際に小数点以下を切り上げ及び切り捨てにしたいのですがどうしたらよろしいでしょうか? ちなみに入力と結果の出力はユーザーフォームのTextBoxにすべて表示しています。 TextBox1 入力する価格 TextBox2 消費税額 TextBox3 消費税込み価格 といった形です  よろしくお願いいたします。

  • ユーザーフォームへのデータ入力を繰り返す方法

    宜しくお願い致します。 ユーザーフォームへのデータ入力を繰り返したいのですが、うまく動いてくれません。 登録件数分データを入力(textbox2)し、それをExcelのシートに出力していきたいと思っています。 具体的には Dim 登録件数 as integer DIM i as integer For i = 1 To 登録件数 TextBox1.Value = i Cells(i, 2).Value =textbox2.value TextBox2.Value = "" Next i のようなことを考えていますが、これで実行すると、2回目以降、ユーザーフォームのtextbox2にデータを入れることができません。 初歩的な質問で誠に恐縮ではございますが、どこを正せば動くようになるのか、ご指導の程宜しくお願い致します。

  • エクセル 複数条件による検索・抽出 マクロ

    ユーザーフォームに5つのTextBoxを用意しまして、TextBox1に取引先会社名、TextBox2に商品名を入れると、(できれば自動的に)TextBox3に単価、TextBox4に商品番号、TextBox5に材料名が入るようなマクロを組みたいと考えております。 当社は、取引先相手が一次卸か二次卸かで、同じ商品でも単価が変わってくるので、二つの条件が必要となり、初心者の私には、どのようなマクロを組めば良いのかわかりません。 できれば、ユーザーフォームを立ち上げるSheet1とは、別のSheet2などに各会社名・対応する商品名、そして各々の単価などの表を作りたいと考えております。 分かりにくい質問かと思いますが、宜しくお願いします。 上記に書いた方法以外に、もっと良いアイデアなどありましたら、是非とも宜しくお願いします。

  • エクセルでユーザーフォームを開いても入力できません

    エクセルでユーザーフォームを作成し、商品コードを入力してマスタより内容の表示をさせるマクロを作成しました。 実行させるとフォームが開き商品コードでカーソルが点滅しているのですが商品コードが入力できません。しかしタイトルバーのところをクリックすると入力できます。どうもフォームが非活 性になっているように思えます。 ユーザーフォームはマクロでUSERFORM1.SHOWで開いています。原因がどこにあるかアドバ イスいただければ幸いです。 エクセルは2016、OSはWINDOWS7です。 宜しくお願い致します。