戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 親トピックをトピックトップへ ]
このトピックに書きこむ
Name/
E-Mail/

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

このトピック参照回数 :
Re[7]: AシートとBシートとのデータ相違書き出しについて(説明あり)

    [196403] Re[7]: AシートとBシートとのデータ相違書き出しについて(説明あり)-

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

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

      半平太さん
      早速確認しました
      上手く動作しました。
      優秀なコードを大変ありがとうございました。

      御多忙中お手数おかけしました
      今後ともよろしくお願いいたします
      お世話になりました。




    [196402] Re[6]: AシートとBシートとのデータ相違書き出しについて(説明あり)-

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

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

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

      すぐにテストして見ます
      また、結果をお知らせします。
      よろしくお願いいたします。




    [196401] Re[5]: AシートとBシートとのデータ相違書き出しについて(説明あり)-

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

    □投稿者/ 半平太 -(2025/01/05(12:47))
    □U R L/
      まだ復旧しない様なので、全角でアップします。(後はそちらで対応してください。)
      
      
      Sub test()
          Dim Ws(1 To 3) As Worksheet
          Dim i As Long
          Dim r(1 To 2) As Range
          Dim aCell As Range
          Dim dicT(1 To 2) As Object
          Dim ky
          Dim Rw, adr(1 To 2)
          
          Set Ws(1) = Worksheets(”A”)
          Set Ws(2) = Worksheets(”B”)
          Set Ws(3) = Worksheets(”C”)
          
          Application.ScreenUpdating = False
          
          Ws(3).UsedRange.Offset(1).ClearContents ’事前クリア
          
          For i = 1 To 2
              Set dicT(i) = CreateObject(”Scripting.Dictionary”)
              
              With Ws(i)
                  Set r(i) = .Range(”B2”, .Cells(.Rows.Count, ”B”).End(xlUp))
                  
                  For Each aCell In r(i)
                      If aCell <> ”” Then
                          dicT(i)(aCell & ”,” & aCell.Offset(0, 2)) = aCell.Row
                      End If
                  Next aCell
              End With
          Next i
          
          For Each ky In dicT(2)
              If dicT(1).exists(ky) = False Then
                  Ws(2).Cells(dicT(2)(ky), ”A”).Resize(1, 17).Copy Ws(3).Cells(Rows.Count, ”A”).End(xlUp).Offset(2)
              End If
          Next ky
          
          For Each ky In dicT(1)
              If dicT(2).exists(ky) Then
                  
                  Rw = dicT(1)(ky)
                  adr(1) = Ws(1).Name & ”!” & Cells(Rw, ”F”).Resize(1, 12).Address
                  adr(2) = Ws(2).Name & ”!” & Cells(dicT(2)(ky), ”F”).Resize(1, 12).Address
                  
                  If Worksheets(”C”).Evaluate(”AND(” & adr(1) & ”=” & adr(2) & ”)”) = False Then
                      Ws(1).Cells(dicT(1)(ky), ”A”).Resize(1, 17).Copy Ws(3).Cells(Rows.Count, ”A”).End(xlUp).Offset(2)
                      Ws(2).Cells(dicT(2)(ky), ”A”).Resize(1, 17).Copy Ws(3).Cells(Rows.Count, ”A”).End(xlUp).Offset(1)
                  End If
              End If
          Next ky
          
          Ws(3).Rows(2).Delete ’不要行を削除
          Application.ScreenUpdating = True
          
          dicT(1).RemoveAll
          dicT(2).RemoveAll
      End Sub
      




    [196400] Re[4]: AシートとBシートとのデータ相違書き出しについて(説明あり)-

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

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

      大変お手数おかけいたします。よろしくお願いいたします。




    [196399] Re[3]: AシートとBシートとのデータ相違書き出しについて(説明あり)-

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

    □投稿者/ 半平太 -(2025/01/04(16:19))
    □U R L/
      > 説明とは
      > 上記文章にある
      > 4.Cシートへの書き出し事由
      > の以下の事です・・
      通常の「仕様説明」であると理解しました。
      
      ただ、現在、コードをアップしようとすると、
      >Forbidden
      >The server refuse to browse the page.・・・
      とか言われて拒否されるので(この現象は時々発生します。困ったものです)
      回復したらアップする予定です。




    [196398] Re[2]: AシートとBシートとのデータ相違書き出しについて(説明あり)-

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

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

      半平太さん、
      ご質問ありがとうございます。

      >(説明あり)
      >説明あり、とはどう言う意味なんですか?

      >普通、質問には説明があるのが相場なのですが。。

      説明とは
      上記文章にある

      4.Cシートへの書き出し事由

      の以下の事です


      *AシートとBシートのキー(番号・年月)を比較して
       ・AシートとBシートのキーが一致して全ての金額も一致すればCシートには書き出さない

       ・Aシートのキーと同じキーがBシートに無ければCシートには書き出さない
       ・AシートにBシートと同じキーが無ければBシートの該当行内容をCシートには書き出す
       ( CシートにBシートの該当データをBシートの17列まで書き出す)

       ・AシートとBシートのキーが一致しても金額のいずれか相違していれば
        Aシート・Bシートの17列目まで書き出す

      *なお、書き出し結果は、
       相違要因の結果毎に1行毎、
       空白を設けてわかりやすいようにする

      *Aシート・Bシートとのキー順に並べ替え済みです



      以上お手数おかけしますが
      御多忙中のところ、
      よろしくお願いいたします。




    [196397] Re[1]: AシートとBシートとのデータ相違書き出しについて(説明あり)-

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

    □投稿者/ 半平太 -(2025/01/04(15:42))
    □U R L/
      >(説明あり)
      説明あり、とはどう言う意味なんですか?
      
      普通、質問には説明があるのが相場なのですが。。




    [196395] AシートとBシートとのデータ相違書き出しについて(説明あり)-

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

    □投稿者/ VBA初心者 -(2025/01/04(08:55))
    □U R L/
      1.Aシート(今年)												
      行 A	 B	C   D  E   F   G   H   I	      J	     K
      1 地区 番号 名前 年月  他 金額1 金額2 金額3 金額4  金額5 ・・	
      2  w 101   あ  202404 ・  1	 3	5	6	8   ・	
      3  w 101   あ  202405 ・	  2	 4	6	7	9   ・	
      4  w	 101   あ   202407 ・	 3	 5	7	8	10   ・
      5    w	 104   え   202405 ・	 2	 4	6	7	9   ・	
      6  w  108   た   202406  ・	  1	  5	7	8	10    ・  		
      
      
      2.Bシート(去年)										
      行  A	B    C	  D	E     F	     G    H	 I	 J      K
      1 地区 番号 名前 年月  他 金額1  金額2 金額3 金額4	金額5 ・・
      2 w	101 あ	202404	・  1	    3   5	  6	 8  ・・
      3 w	101 あ	202405	・  2     4   6      7	 9  ・・	
      4 w	101 あ	202407	   3	    5   7	  8	 10  ・・	
      5 w	107 き	202404	・  3	    5   7       8	  10  ・・	
      6 w	108 た	202406	   2	    5   7        8      10  ・
      
      
      説明	
      *キー:番号+年月
      			
      A,Bとも2行目のキーと金額	A	=	B	
      A,Bとも3行目のキーと金額	A	=	B	
      A,Bとも4行目のキーと金額	A	=	B	
      Aの5行目のキー    	        A	有り	B	無し
      Bの5行目のキー     	A	無し	B	有り
      A,Bとも6行目のキーと金額	A	<>	B	金額がいずれか相違
      
      
      3.C 差異(同じキーでの)シート出力結果
      (AとBとの差異出力:Aに無く又はA・Bで金額変更ある場合)										
      
      行 A	 B	C  D    E  F    G	     H     I   J
      1 地区 番号 名前 年月 他 金額1 金額2 金額3 金額4 金額5
      2 w	107   き 202404 ・  3   5	   7	   8    10
      3  空白行にする										
      4 w	108   き 202406 ・ 1    5    7	     8  10
      5 w	108   き 202406 ・  2     5       7	      8	   10
      								
      
      						
      説明						
      2行目	A	無し	B	有り		
      				
      4行目	A	<>	B	キーが一致するも金額がいずれか相違		
      5行目	A	<>	B	キーが一致するも金額がいずれか相違		
      											
      
      4.Cシートへの書き出し事由																	
       *AシートとBシートのキー(番号・年月)を比較して					
       ・AシートとBシートのキーが一致して全ての金額も一致すればCシートには書き出さない																				
      
       ・Aシートのキーと同じキーがBシートに無ければCシートには書き出さない																				
       ・AシートにBシートと同じキーが無ければBシートの該当行内容をCシートには書き出す
       ( CシートにBシートの該当データをBシートの17列まで書き出す)																				
      
       ・AシートとBシートのキーが一致しても金額のいずれか相違していれば
        Aシート・Bシートの17列目まで書き出す																				
      																				
      *なお、書き出し結果は、
       相違要因の結果毎に1行毎、
       空白を設けてわかりやすいようにする						
      
      *Aシート・Bシートとのキー順に並べ替え済みです														
      																				
      
      どなたか上記のようなVBA(コーディング)について																				
      ご記載頂ければ幸いです																				
      よろしくお願いいたします																				
      
      WIN11です
      



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



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

- Child Forum -
Edit:ゆう-G