• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vba ユーザーフォームにて質問)

VBAユーザーフォームで社員名と売上件数を転記する方法

このQ&Aのポイント
  • VBAを使用して、ユーザーフォームで社員名と売上件数を入力し、指定の範囲に転記する方法について教えてください。
  • 具体的には、C3からC15までにユーザーフォームで入力した社員名を転記し、D3からD15までに売上件数を転記する処理を行いたいです。
  • しかし、C3の列以降に転記することができず困っています。対応方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

添付図のJ、K列は単に説明用として入力されているのかどうかよくわかりませんが、どちらにしても、H列までしか入力できないとすれば、  retu = Cells(2, Columns.Count).End(xlToLeft).Column + 1     ↓  If Cells(3, 8) <> "" Then   MsgBox "もう入力できません"   Exit Sub  Else   retu = Cells(3, 8).End(xlToLeft).Column + 1  End If

noname#239531
質問者

補足

回答ありがとうございます。希望通りで動きました! もう1点質問なんですが、 c列の文字が記入されてるとなり(空白)から転記~右の文字列にぶつかったらとまる。コードも作ってみたんですがエラーがおきてしまいました。なにかわかりますでしょうか?

その他の回答 (2)

  • iruyasu
  • ベストアンサー率37% (3/8)
回答No.2

retu = Cells(2, Columns.Count).End(xlToLeft).Column + 1 ↓ retu = Cells(3, Columns.Count).End(xlToLeft).Column + 1 でいいんでない?

  • kon555
  • ベストアンサー率51% (1845/3564)
回答No.1

記載列を「retu = Cells(2, Columns.Count).End(xlToLeft).Column + 1」で捕まえる構造に見えますが、 Cells(3, retu).Value = Me.txtComboBox1.Value ←社員を選択 Cells(4, retu).Value = Me.txtsuzuki.Value  ←売れた件数 Cells(5, retu).Value = Me.txttoyota.Value  ←売れた件数 Cells(6, retu).Value = Me.txthonnda.Value   ←売れた件数 となっていて、 Cells(2, retu)に何の入力もされないので、延々と同じ列に記載し続けるコードになっています。 「Cells(2, retu).Value ="1"」 などで無意味でも入力済として成立させるなり、 「retu = Cells(3, Columns.Count).End(xlToLeft).Column + 1」 にして3行目で捕まえるなりすれば解消すると思いますよ。

関連するQ&A

専門家に質問してみよう