VBA素人です。ネットから拾った見積書作成のエクセルファイルを使っております。
見積書作成し、見積書№を元に別シートへ登録して見積書を登録時、同じ見積書№だと上書きされるようになってます。
そこで、見積書№が同じものが登録済の場合、メッセージで「同じ№がありますが上書きしますか?」yes・noで上書き実行かキャンセルの処理を行えるようにしたいです。
見積書へ登録の処理はこちらのコードを使っております。
Sub 登録()
Dim myDCount As Long, myCount As Integer
Application.ScreenUpdating = False
With Worksheets("見積書一覧")
.Activate
myDCount = Worksheets("見積書一覧").Range("B1").CurrentRegion.Rows.Count 'データの最終行+1を取得
For j = 2 To myDCount + 1
If .Cells(j, 1).Value = Worksheets("見積書").Cells(3, "V").Value Then
myDCount = j
Exit For
End If
myDCount = j
Next j
.Cells(myDCount, "A").Value = Worksheets("見積書").Cells(3, "V").Value
.Cells(myDCount, "B").Value = Worksheets("見積書").Cells(4, "U").Value
.Cells(myDCount, "C").Value = Left(Worksheets("見積書").Cells(6, "E").Value, Len(Worksheets("見積書").Cells(6, "E").Value) - 3)
.Cells(myDCount, "D").Value = Right(Worksheets("見積書").Cells(7, "E").Value, Len(Worksheets("見積書").Cells(7, "E").Value))
.Cells(myDCount, "E").Value = Worksheets("見積書").Cells(20, "E").Value '見積内容
.Cells(myDCount, "F").Value = Worksheets("見積書").Cells(21, "E").Value
.Cells(myDCount, "G").Value = Worksheets("見積書").Cells(22, "E").Value
.Cells(myDCount, "H").Value = Worksheets("見積書").Cells(23, "E").Value
.Cells(myDCount, "I").Value = Worksheets("見積書").Cells(24, "E").Value
.Cells(myDCount, "J").Value = Worksheets("見積書").Cells(4, "AR").Value '受注オーダー
.Cells(myDCount, "K").Value = Worksheets("見積書").Cells(25, "E").Value '見積内容
.Cells(myDCount, "L").Value = Worksheets("見積書").Cells(26, "E").Value
.Cells(myDCount, "M").Value = Worksheets("見積書").Cells(27, "E").Value
.Cells(myDCount, "N").Value = Worksheets("見積書").Cells(28, "E").Value
.Cells(myDCount, "O").Value = Worksheets("見積書").Cells(29, "E").Value
.Cells(myDCount, "P").Value = Worksheets("見積書").Cells(21, "K").Value '図番
End With
Application.ScreenUpdating = True
Worksheets("見積書").Activate
End Sub
こちらのコードから処理を付け足すだけでいけるのか。またこのコードでおかしいところがありましたら、修正など教えて下さるとありがたいです。
親切な方よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
下のコードを適当な場所に挿入してください。
2行目あたりで問題ないと思います。
<参考コード>
Dim 見積書番号 As String
見積書番号 = Worksheets("見積書").Cells(3, "V")
If 見積書番号 = "" Then
MsgBox "見積書番号が入力されていません"
Exit Sub
End If
Dim 検索範囲 As Range
Set 検索範囲 = Worksheets("見積書一覧").Range("B1").CurrentRegion
If Not 検索範囲.Find(What:=見積書番号) Is Nothing Then
If MsgBox("同じ№がありますが上書きしますか?", vbYesNo) = vbNo Then Exit Sub
End If
No.2
- 回答日時:
下記のIF文の中に、Msgboxの表示と「No」が返答された場合のExit Subを書けば、概ねの要件は満たせると思います。
If .Cells(j, 1).Value = Worksheets("見積書").Cells(3, "V").Value Then
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サブフォルダに格納されている...
-
IF文、条件分岐の整理方法
-
VBAコードのインデント表示
-
A列に記載されているフォルダ...
-
VB.net(VB)で、フォームにExcel...
-
VBAなくなるの?
-
【ExcelVBA】インデックスが有...
-
vba アクティブシートの名前変...
-
vba 削除
-
エクセルのマクロについて教え...
-
エクセルVBAにて =A1=B1とすれ...
-
VBA 別ブックから条件に合うも...
-
時間短縮のために、テキストフ...
-
ワードVBA どの表か知ることは...
-
エクセルのマクロについて教え...
-
エクセルのVBAコードについて教...
-
VBA指定行削除
-
VBAで大量のファイルをシート名...
-
VBA 別ブックからコピペしたい...
-
配列のペースト出力結果の書式...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
検索エンジンを作りたい
-
VB6でコンソールアプリケーショ...
-
ClickOnceでのテスト/本番の運...
-
.NET VC++ DLLの作成方法
-
利用者にとって負担の軽いプロ...
-
エクセルVBAで上書き時のみ確認...
-
「運用回避」ってどいう意味?
-
アブソモータのエンコーダリセ...
-
「断定調」と「断言調」──意味...
-
内部統制で、IT統制があります...
-
オーブントースターのマイコン...
-
巻き取り機構を自作することは...
-
マイコンとシステムLSIの違い
-
パソコンの電源コードをなくし...
-
マイコンとPLDについて
-
電話管理部門は情シス?or設備部?
-
マイクロコンピューターとマイ...
-
補助動詞となる形の1つに 体言...
-
電子工作で、簡単に往復運動を...
-
マイコンの学習方法
おすすめ情報