戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
AシートへBシートのデータ(入力日・金額1・金額2・金額3)の貼付について

    [196386] AシートへBシートのデータ(入力日・金額1・金額2・金額3)の貼付について-

    ■親トピック/記事引用/メール受信=ON■

    □投稿者/ VBA初心者 -(2024/12/31(23:53))
    □U R L/
      1.Aシート(記入元)・・・書き込み前							
      
      	A	 B	 C	 D	 E	 F	 G
      1  顧客番号	名前	年月	入力日	金額1	金額2	金額3
      2	101	あ	202404				
      3	101	あ	202405				
      4	101	あ	202406				
      5	101	あ	202407				
      6	104	え	202404				
      7	104	え	202405				
      8	104	え	202406				
      9	104	え	202407				
      10	107	き	202404				
      11	107	き	202405				
      12	107	き	202406				
      13	107	き	202407	
      
      
      			
      2.Bシート・・・入力データ								
      
      	A	B      C     E	    D	F	 G	 H
      1  顧客番号  名前  漢字名 入力日   年月	金額1	金額2	金額3
      2	101	あ     亜  2024/6/10   202405    1	 4	 5
      3	101	あ     亜  2024/9/30   202406    2	 5	 7
      4	107	き     着  2024/6/30   202404		 2	
      5	107	き     着  2024/12/21  202407	 3		 8
      6								
      7								
      8								
      
      
      3.Aシート(記入元)・・・書き込み後							
       
           A       B	  C	 D	    E	   F	 G
      1  顧客番号 名前  年月	入力日	  金額1 金額2	金額3
      2  101	    あ	 202404				
      3  101	    あ	 202405	2024/6/10   1	   4	  5
      4  101	    あ	 202406	2024/9/30   2	   5	  7
      5  101	    あ	 202407				
      6  104	    え	 202404				
      7  104	    え	 202405				
      8  104	    え	 202406				
      9  104	    え	 202407				
      10 107	    き	 202404	2024/6/30	   2	
      11 107	    き	 202405				
      12 107	    き	 202406				
      13 107	    き	 202407	2024/12/21   3		  8
      						 	
      
      説明内容							
      AAシート(書き込み前台帳)にBシートキーとなる顧客番号・年月のデータが
      あれば							
      それぞれ該当の行・列に入力日・金額1・金額2・金額3を貼付したいです							
      							
      例として書き込み後は 3.Aシート のようになります							
      
      どなたか上記のようなVBA(コーディング)について							
      ご教示頂ければ幸いです							
      よろしくお願いいたします  (WINDOWS11です)						
      



      ++++++++++++++++++++
      OS      ⇒OTHER
      Version⇒Excel 2007
      ++++++++++++++++++++




    [196387] Re[1]: AシートへBシートのデータ(入力日・金額1・金額2・金額3)の貼付について-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2025/01/01(14:56))
    □U R L/
      例では、金額1,2,3 しかありませんが、この列は今後増えていくのですか?




    [196388] Re[2]: AシートへBシートのデータ(入力日・金額1・金額2・金額3)の貼付について-

    記事引用/メール受信=OFF■

    □投稿者/ VBA初心者 -(2025/01/01(16:20))
    □U R L/

      半平太さん、早速にご返信ありがとうございます。

      >例では、金額1,2,3 しかありませんが、この列は今後増えていくのですか?

      金額1,2,3のみです。列は増えません


      Aシートの顧客番号は実際には500先ありますので
      Aシートの行は 2000=500X4(年月)で固定です

      よろしくお願いいたします。




    [196389] Re[3]: AシートへBシートのデータ(入力日・金額1・金額2・金額3)の貼付について-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2025/01/01(17:26))
    □U R L/
      >Aシートの顧客番号は実際には500先ありますので
      >Aシートの行は 2000=500X4(年月)で固定です
      そこはちょっと解からないですが、こんなのでいいかもです。
      
      Sub test()
          Dim wsDest As Worksheet
          Dim dicT As Object
          Dim rDest As Range
          Dim aCell As Range
          Dim msg
          Dim RW
          
          Set dicT = CreateObject("Scripting.Dictionary")
          msg = "以下の顧客データは記入先に在りません"
          
          Set wsDest = Worksheets("A") '←実際のシート名にする
          
          With wsDest
              Set rDest = .Range("A2", .Cells(.Rows.Count, "A").End(xlUp))
          End With
          
          For Each aCell In rDest 'Dictionaryにキー(番号+年月)とItem(行番号)を登録する
              If aCell.Value <> "" Then
                  dicT(aCell & "-" & aCell.Offset(, 2)) = aCell.Row
              End If
          Next
          
          Application.ScreenUpdating = False
          
          With Worksheets("B") '←実際のシート名にする
              
              For Each aCell In .Range("A2", .Cells(.Rows.Count, "A").End(xlUp))
                  RW = dicT(aCell & "-" & aCell.Offset(, 4))
                  
                  If IsNumeric(RW & "") Then
                      aCell.Range("D1,F1:H1").Copy wsDest.Cells(RW, "D")
                  Else
                      msg = msg & vbCrLf & aCell & "-" & aCell.Offset(, 4)
                  End If
              Next
          End With
          
          dicT.RemoveAll
          
          Application.ScreenUpdating = True
          
          If InStr(msg, vbCrLf) Then
              MsgBox msg
          End If
      End Sub


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [196390] Re[4]: AシートへBシートのデータ(入力日・金額1・金額2・金額3)の貼付について-

    記事引用/メール受信=OFF■

    □投稿者/ VBA初心者 -(2025/01/01(17:34))
    □U R L/

      半平太さん
      早速にご回答ありがとうございます。
      早速に操作してみます
      もしわからないところが
      あれば、
      またよろしくお願いいたします。




    [196391] Re[5]: AシートへBシートのデータ(入力日・金額1・金額2・金額3)の貼付について-

    記事引用/メール受信=OFF■

    □投稿者/ VBA初心者 -(2025/01/01(19:28))
    □U R L/

      半平太さん
      早速テストして見ました

      データについては上手く出来ました
      大変ありがとうございました。
      御多忙の所、大変感謝致します

      ただ、出来れば、

      Bシートの書式(日付形式、金額形式)を貼り付けしていただいていますが、
      Aシートに定義している色と枠線の書式は
      残して頂きたいのです


      Aシートに顧客番号別に複数該当行について
      色と枠線を定義付けているのですが
      実行した所、
      書式の色や枠線が変わっていました
      (Bシートの色や枠線の書式が反映されているようです)

      申し訳ありませんが、
      上記について修正のコードをいただけないでしょうか

      御多忙中、恐れ入りますが、
      よろしくお願いいたします。




    [196392] Re[6]: AシートへBシートのデータ(入力日・金額1・金額2・金額3)の貼付について-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2025/01/01(20:19))
    □U R L/
      >aCell.Range("D1,F1:H1").Copy wsDest.Cells(RW, "D")
        ↓こうかな?(2文に分ける)
        aCell.Range("D1,F1:H1").Copy
        wsDest.Cells(RW, "D").PasteSpecial xlPasteValues




    [196393] Re[7]: AシートへBシートのデータ(入力日・金額1・金額2・金額3)の貼付について-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ VBA初心者 -(2025/01/01(20:35))
    □U R L/

      半平太さん
      大変ありがとうございました。!
      上手く動作しました。
      御多忙大変お世話になりました。
      また、よろしくお願いいたします。



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G