Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


43308 / 76732 ←次へ | 前へ→

【38474】Re:シート間で同条件の並べ替え
質問  ピッコロ  - 06/6/3(土) 18:28 -

引用なし
パスワード
   ▼Statis さん:

こんにちは
>良く解かりませんが
返事が遅くなり申し訳ありません
まだまだVBA初心者ですので、本を読んで
「ああいうことができるんじゃないか?」
と思いながら本に書いてあるコードに対し改造・もしくはコードを追加しているので
わかりづらいんじゃないかと思っています。

>項目で集計シートにあってDBシートに無いものはありますか?
---------DBシート--------
TEL          氏名    住所     日時         商品名
011-881-3456    稲本誠一    札幌市    2006/5/31 11:03    バナナ
03-1231-5432    辻本順二    東京都    2006/6/1 16:16    バナナ
06-6444-7890    藤本幸三    大阪市    2006/6/1 10:23    りんご
092-419-1942    宮元征四    福岡市    2006/5/31 17:00    りんご
------集計シート--------

    りんご    バナナ    みかん    ぶどう    合計
稲本誠一                    
辻本順二                    
藤本幸三                    
宮本征四                    
合計                    
----------------


>無いものが無いなら、コピーで対応できると思いますが?
>なぜ、記載のイベントで対応使用としているのでしょうか?

シートとしては
DBシート(最新の履歴)と確認シート(表の仕様は同じでDBの日時の過去履歴を残したもの)と集計シート(上記のような品名の数を入力するシート)を準備し作っています。

このマクロの全体的な話を申しますと
DBシートに作成してあるコマンドボタンを押すとユーザーフォームが立ち上がり、
そのユーザーフォームの項目通り入力していけばDBシートに反映される形式をとっています。

---------DBワークシートモジュール----------------
Private Sub Worksheet_Change(ByVal Target As Range)
    行 = Range(シート下端).End(xlUp).Row
    名前行 = Range("C65536").End(xlUp).Row
    
    a = Target.Row
    b = Target.Column
    MsgBox Target.Address
        
    If Target.Address = "$C$" & 名前行 Then
        MsgBox Target.Address
        Intersect(Target, Range("C1:C" & 名前行)).Copy
        MsgBox Target.Address
        Worksheets("集計").Range("A65536").End(xlUp).Offset_
        (-1).Insert
        
    End If
    If b <> 6 Then Exit Sub
    
    If b = 6 Then
      
      Intersect(Range("B" & a, "F" & a), Range("B1:F" & 行)).Copy
      Worksheets("確認").Range("B" & a, "F" & a).Insert
      Application.CutCopyMode = False
            
    End If
Emd Sub

他のシートに対してはDBシートに入力されたデータに従い、
DBシートのデータをコピーし確認シートに挿入という形をとっています。
仕様が同じ確認シートはWorksheet_Changeイベントで対応することにより、
電話番号順通り並べ替えられた為DBシートの名前をコピーし
集計シートに名前を挿入することから記載のイベントでも対応できると思い対応しています。


>また、一度集計シートの並び替えをマクロの記録で行ってみては如何ですか?
>なぜ上手く行かないか解かると思います。

単に並び替えだけでなく、もちろんマクロの記録もしながら
オプションのユーザー設定リストからの並び替えも使用してみたのですが
-------------------------------
    Sheets("DB").Select
    Application.AddCustomList ListArray:=Array("TEL", "011-881-3456", _
    "03-1231-5432", "06-6444-7890", "092-419-1942")
  Range("A1").Select
----------------------------------
集計シートに電話番号がないせいか電話番号順通りできませんでした。
その為理由としては「項目がないから上手くいかない」位しかわかりません。

配列を指定するArray関数で範囲(Range("B1:B5")のように)を取得できないのですか?

長々と書いてスイマセン。

1 hits

【38403】シート間で同条件の並べ替え ピッコロ 06/6/1(木) 23:27 質問
【38411】Re:シート間で同条件の並べ替え Statis 06/6/2(金) 9:26 発言
【38474】Re:シート間で同条件の並べ替え ピッコロ 06/6/3(土) 18:28 質問
【38482】Re:シート間で同条件の並べ替え ナイスプログラム 06/6/3(土) 23:25 回答
【38495】Re:シート間で同条件の並べ替え Statis 06/6/5(月) 9:14 発言
【38520】Re:シート間で同条件の並べ替え ピッコロ 06/6/5(月) 17:40 質問
【38535】Re:シート間で同条件の並べ替え Statis 06/6/6(火) 9:46 発言
【38521】Re:シート間で同条件の並べ替え ナイスプログラム 06/6/5(月) 17:46 発言
【38528】Re:シート間で同条件の並べ替え ナイスプログラム 06/6/5(月) 19:26 回答
【38530】Re:シート間で同条件の並べ替え ナイスプログラム 06/6/6(火) 0:10 回答
【38729】Re:シート間で同条件の並べ替え ピッコロ 06/6/9(金) 9:04 お礼
【38500】Re:シート間で同条件の並べ替え ハチ 06/6/5(月) 12:43 発言

43308 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free