プロが教えるわが家の防犯対策術!

Book売上集計表から、B列のある売上日をダブルクリックで その行のデータの「顧客名」C列 「適応」D列 「金額」E列 を 領収書(別ブック)を開き、Book領収書(別ブック)のB7に顧客名 C11に金額 D16に適応を転記 売上集計表のブックを閉じる
このような事を実現したいのですが ご指南お願いいたします。

「現在は別シートに転記していますが別ブック」の質問画像

質問者からの補足コメント

  • 現在使用しているコードは
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Set Target = Intersect(Target, Me.Range("B4").CurrentRegion)
    If Target Is Nothing Then Exit Sub
    Set Target = Intersect(Target.EntireRow, Me.Range("C:E"))
    Target.Select  つづきは次に

      補足日時:2021/06/28 14:44
  • つづきです
    With Worksheets("Sheet2")
    .Range("B7").Value = "'" & Target(1, 1).Value
    .Range("C11").Value = Target(1, 3).Value
    .Range("D16").Value = Target(1, 2).Value
    End With
    Cancel = True
    End Sub
    が現在のコードです よろしくお願い致します。

      補足日時:2021/06/28 14:45

A 回答 (4件)

>現在は別シートに転記していますが・・・


ということですので「Book売上集計表」内の「領収書シート」へ転記しているということでしょうか?
また、以下のコマンドは理解できますか?または使用していますか?
Dim WB as Workbook
Set WB=Book領収書’など既に開いているBookを設定可能

Dim WS as WorkSheet
Set WS=領収書シート

これらがわかるようでしたら、比較的簡単に変更可能です。
せめて、With・・・・Endwithを使用していなければその変更箇所は多くなることが予想されます。

その他のアドバイスとしては「Book領収書(別ブック)」の元になるテンプレートファイルを準備した方が楽になりそうです。
もしわかるようでしたら、現在使用しているコマンドの
「どこから(転記元データ)」→「どこへ(転記先)」の部分(の一例)を示されれば、1から作り直さすとも変更点のみを指南することが可能になると思います。
    • good
    • 0

こんにちは



画像の表組とご説明分が一致していませんが、B4セルをダブルクリックした時
>「顧客名」C列 「適応」D列 「金額」E列 を
B7に顧客名 C11に金額 D16に適応を

別ブックを開くところが分からないのでしょうか?

Workbooks.Open などで対象を開くと良いと思います。

Withで絡めて書くと
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim openFileName As String
If Intersect(Target, Range("B4:B8")) Is Nothing Then Exit Sub
openFileName = ActiveWorkbook.Path & "\領収書.xlsx"
With Workbooks.Open(openFileName)
With .Worksheets("領収書")
.Range("B7") = Target.Offset(, 1).Value
.Range("C11") = Target.Offset(, 3).Value
.Range("D16") = Target.Offset(, 2).Value
End With
.Close
End With
Cancel = True
End Sub

openFileNameは実際のブックのフルパス
"B4:B8" VBA処理実行範囲 
対象シート名は領収書
対象ブックやシートが見つからない場合 エラー1004

各所、適時変更してください。
    • good
    • 0
この回答へのお礼

ご指南ありがとうございます
転記した後に 転記元(Book売上集計表)のブックを閉じて領収書のブックだけをそのまま残したいのですが メモリーエラーで出来ません

どのようにすればいいでしょうか よろしくお願いします

お礼日時:2021/06/28 18:32

#2です


失礼しました >売上集計表のブックを閉じる
なのですね。
これは、ダブルクリックをトリガーにご希望の処理をすることは難しいと思います。
ただ、私は初級レベルの素人なので、何か方法はあるのかも知れませんので
的確な回答がされるかも知れません。

私の代替え案は、ダブルクリックするセルを選択し、ボタンやショートカットキーなどに登録したVBA(標準モジュールから)で実行する方法です。
一応にサンプルーコードを書いておきます

Sub sample()
Dim openFileName As String
Dim Rng As Range
Set Rng = Selection.Cells
openFileName = ActiveWorkbook.Path & "\領収書.xlsx"
With Workbooks.Open(openFileName)
With .Worksheets("領収書")
.Range("B7") = Rng.Offset(, 1).Value
.Range("C11") = Rng.Offset(, 3).Value
.Range("D16") = Rng.Offset(, 2).Value
End With
End With
ThisWorkbook.Close SaveChanges:=False
End Sub

領収書.xlsxは実行ブックと同じフォルダ(階層)にある事としていますので書き替えてください。また、保存系処理も手直しが必要と考えます。
    • good
    • 0

失礼


イベントと同じような条件なら
Set Rng = Selection.Cellsの下行に
If Intersect(Rng, Range("B4:B8")) Is Nothing Or Selection.Count > 1 Then Exit Sub
が必要ですね。
    • good
    • 1
この回答へのお礼

ありがとうございました
行を選択 ボタンを作り 領収書開く転記
と 致しました
ありがとうございます。

お礼日時:2021/07/02 00:48

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