戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
異なる複数明細(複数列)を同一シートに表示させる方法

    [192244] 異なる複数明細(複数列)を同一シートに表示させる方法-

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

    □投稿者/ Excel VBA初心者 -(2020/06/20(14:19))
    □U R L/
      前回、異なる複数明細を同一シートに表示させる方法をVBAで作成頂きました。
      
      <A>シート・・・キーとなる先
             A      
      1   名前
      2   あああ
      3   いいい
      4   ううう
      5   えええ
      6    ・
      7    ・
      
      <B>シート・・・キーとなる先の取引銀行(それぞれ0〜複数明細)
             A        B
      1   名前   取引銀行
      2   あああ   A銀行
      3   あああ   C銀行
      4   いいい   D銀行
      5   いいい   E銀行
      6   いいい   G銀行    
      7   ううう     N銀行
      8   ううう     R銀行
      9   ううう     T銀行
      10   えええ   D銀行
      11   おおお   E銀行
      12   ・     ・
      13   ・     ・
      
      <C>シート・・・キーとなる先のクレジット会社名(それぞれ0〜複数明細)
             A          B
      1   名前    クレジット会社
      2   あああ   イ社クレジット
      3   いいい   ハ社クレジット
      4   いいい   ニ社クレジット
      5   いいい   へ社クレジット
      6   いいい   チ社クレジット    
      7   おおお     ニ社クレジット
      8   かかか     ハ社クレジット
      9   かかか     ト社クレジット
      10   くくく   イ社クレジット
      11   こここ   ハ社クレジット
      12   ・     ・
      13   ・     ・
      
      
      <D>シート・・・上記A、B、Cシートを合体
              (名前のキーだけが関連あり、Bシートの取引銀行明細とCシート明細のクレジット会社明細との関連性は無い)
      
             A        B        C
      1   名前   取引銀行   クレジット会社
      2   あああ   A銀行    イ社クレジット
      3   あああ   C銀行
      4   いいい   D銀行    ハ社クレジット
      5   いいい   E銀行    ニ社クレジット
      6   いいい   G銀行    へ社クレジット
      7   いいい          チ社クレジット
      8    ううう     N銀行
      9   ううう     R銀行
      10   ううう     T銀行
      11   えええ   D銀行
      12   おおお   E銀行        ニ社クレジット
      13   ・     ・
      13   ・     ・
      
      上記をVBAで作成頂いたコード
      
      Sub test()
          Dim v
          Dim r As Range
          Dim k As Long
          
          v = Sheets("A").Cells(1).CurrentRegion.Columns(1).Value
          
          For k = 2 To UBound(v)
              Set r = Sheets("D").Cells(10000, 1).End(xlUp).Offset(1)
              With Sheets("B").Cells(1).CurrentRegion
                  .AutoFilter 1, v(k, 1)
                  If .Columns(1).SpecialCells(xlCellTypeVisible).Count > 1 Then
                      .Offset(1).Copy r
                  End If
              End With
              With Sheets("C").Cells(1).CurrentRegion
                  .AutoFilter 1, v(k, 1)
                  If .Columns(1).SpecialCells(xlCellTypeVisible).Count > 1 Then
                      Intersect(.Offset(1), .Columns(1)).Copy r
                      Intersect(.Offset(1), .Columns(2)).Copy r.Offset(, 2)
                  End If
              End With
          Next
      
      End Sub
      
      実は元のB、C データの列が複数となっていました。
      
      <B>シート・・・キーとなる先の取引銀行(それぞれ0〜複数明細)の列が複数あります。
             A        B      C        D
      1   名前   取引銀行   支店名      残 高
      2   あああ   A銀行    b支店      1111
      3   あああ   C銀行    s支店      22
      4   いいい   D銀行    f支店     444
      5   いいい   E銀行    y支店     666
      6   いいい   G銀行    b支店       3
      7   ううう     N銀行    a支店    4444
      8   ううう     R銀行    w支店      33
      9   ううう     T銀行    r支店       0
      10   えええ   D銀行    u支店       9
      11   おおお   E銀行    q支店     777
      12   ・     ・
      13   ・     ・
      
      <C>シート・・・キーとなる先のクレジット会社名(それぞれ0〜複数明細)の列が複数あります。
             A          B        C       D
      1   名前    クレジット会社    支社      残高
      2   あああ   イ社クレジット   は支社       1
      3   いいい   ハ社クレジット   お支社       3
      4   いいい   ニ社クレジット   え支社       8
      5   いいい   へ社クレジット   か支社       2
      6   いいい   チ社クレジット   う支社       55  
      7   おおお     ニ社クレジット   た支社       0
      8   かかか     ハ社クレジット   ち支社      99999
      9   かかか     ト社クレジット   か支社       77
      10   くくく   イ社クレジット   ま支社       88
      11   こここ   ハ社クレジット   し支社       99
      12   ・     ・
      13   ・     ・
      
      
      上記の様にB、Cのシートの列が複数であっても Dのシートに合体出来るVBAにコードを変更したいのですが、
      どのようにすればよいか、ご教授いただければ幸いです。
      (度々申し訳ございません。よろしくお願いいたします。)
      
      


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

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




    [192249] Re[1]: 異なる複数明細(複数列)を同一シートに表示させる方法-

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

    □投稿者/ マナ -(2020/06/20(18:11))
    □U R L/
      これで、操作対象範囲を2列にできます
      
      With Sheets("B").Cells(1).CurrentRegion.Resize(,2)
      


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

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




    [192250] Re[2]: 異なる複数明細(複数列)を同一シートに表示させる方法-

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

    □投稿者/ Excel VBA初心者 -(2020/06/20(21:53))
    □U R L/
      マナ さん、ありがとうございます。
      
      >With Sheets("B").Cells(1).CurrentRegion.Resize(,2)
      
      >With Sheets("C").Cells(1).CurrentRegion.Resize(,2)
      
      としましたが、うまくいきません。
      
      <D>シート・・・上記A、B、Cシートを合体・・・・「あああ」を例にすると
      
           A        B     C    D    E       F     G
      1 名前   取引銀行  支店名  残高  クレジット会社  支社   残高
      2 あああ   A銀行  b支店  1111  イ社クレジット   は支社   1
      3 あああ   C銀行  s支店  22
      
      としたいのです。
      
      お手数をおかけしますが、よろしくお願いいたします。
      
      
      


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

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




    [192256] Re[3]: 異なる複数明細(複数列)を同一シートに表示させる方法-

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

    □投稿者/ マナ -(2020/06/21(09:21))
    □U R L/

      では

      Intersect(.Offset(1), .Columns(2)).Copy r.Offset(, 2)

      Intersect(.Offset(1), .Columns("B:D")).Copy r.Offset(, 4)




    [192258] Re[4]: 異なる複数明細(複数列)を同一シートに表示させる方法-

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

    □投稿者/ Excel VBA初心者 -(2020/06/21(12:45))
    □U R L/

      マナ -さん、早速にありがとうございます。
      うまく行きました。
      何度も大変お世話になりました。
      また、よろしくお願いいたします。



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

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

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


- Child Forum -
Edit:ゆう-G