[[20161205205004]] 『「VBAを使用し、異なる「報告書」データーの合計求x(りりちゃん☆彡) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『「VBAを使用し、異なる「報告書」データーの合計金梶v[りりちゃん☆彡] について』(りりちゃん☆彡)

投稿
[[20160414204900]] 『VBAを使用し、異なる「報告書」データーの合計金梶x(りりちゃん☆彡) 
について...

お世話になっております。
りりちゃん☆彡です。
この度もよろしくお願い致します。

今は、 2016/04/16(土) 22:10 に(β)様に教えていただいたものでお仕事しているのですが、「費用」となっているシートの方にだけ、
数を数えた累計の部分があるのですが、それを読込してもらいたいのですが、
どうすればよいか分からず困っています。

(β)様教えていただけませんでしょうか。

If Left(Merge_book, 1) = "G" Then

            target = Workbooks(Merge_book).Worksheets("費用").Range("am2").Value

お忙しい所申し訳ありませんが宜しくお願い致します。

< 使用 Excel:Excel2010、使用 OS:Windows8 >


 今は Gブックの場合、費用シートの AM2 の値を取り出しているわけですが

 ・それとともに累計も ですか、それとも、それにかわって 累計を ですか?
 ・累計の場所は決まっていますか? それとも、その費用シートのデータ数次第で場所は可変ですか?
 ・もし可変だとしたら、その場所はどこでしょう。
  AM2から下にみてデータのある最終セル?
  AM2から右に見てデータのある最終セル?
  あるいは、何か累計を識別する文字列がどこかのセルにあって、その下のセルとか右のセルとか?
  あるいは・・・・?

(β) 2016/12/05(月) 21:38


(β)様

こんばんわ。今日は寒いですね(^-^;りり☆彡です。
いつもありがとうございます。

この度も、色々とお世話になります。
りり、昨日どこから値をとるのか書いてなかったですね( ;∀;)ごめんなさい。
すっかり書いた気になってました(..)

個数が入っているのは、読み込むGのついたブックはすべて結合されたセル「AE・AF2」に数字で
1とか20とかって入っています。
ブックは複数あったとしてもGのブックはすべて同じ場所です。

本当に、毎度のことながら一度で終わらなくてすみません。。。

そうだ!!(β)さんから来たレスで思いだしちゃったけど、
これじゃ無いやつだったけど、もう一つ聞きたいのあったんだっけ。。
あ〜。なんでりりってこう手際が悪のかしら。
そのやつはね、CSVでとりこみした時に、エクセルファイルで自動保存してくれるように、
本を見ながらりりが作ったやつなんだけどね、B列の最終セルの一個下に集計した数字を入れてもいたいんです。でもね、毎回最終行が変わってしまうのね。
で、どうすればいいんだろ〜?って思っちゃったの。
あ、別レスで相談した方がいいですよね(*_*;
ブックもデーターも今手元に無いし。。(CSVのはこの間のと違うやつです。)

「VBAを使用し、異なる「報告書〜」の件につきまして、お忙しい所お手数をおかけ致しますが、
ご指導の程、宜しくお願い致します。
PS.年末で忙しいでしょうに、(β)さんの事、名指ししちゃってごめんなさい。(>_<)
(りりちゃん☆彡) 2016/12/06(火) 22:01


 とりあえず

 target = Workbooks(Merge_book).Worksheets("費用").Range("am2").Value

 これを

 target = Workbooks(Merge_book).Worksheets("費用").Range("ae2").Value

 にして実行してください。

 おそらく、いやいや、こうじゃないんだよ、という結果だと想像します。
 ですから、この結果では、どこが違うということを、具体的に教えてください。

(β) 2016/12/07(水) 00:06


(β)様

こんばんわっ。りり☆彡です。
いつもお世話になっております。

お返事ありがとうございます。

ええと、新しくいれる個数の方は、今あるコードに追加して書いて欲しいんです。
読み込むファイルの「Gのついたブックのみ」にある、結合されたセル「AE・AF2」に入ってる
個数の数値を集計したいんです。

いまは、読み込みした分を貼りつけられるシートは↓見たいになっています。

#---ここから

A列 B列
G日々○○管理報告書【うさぎ】.xlsm   48,000

 P日々◆◆管理計算書【猫】.xlsm     100,000 
 P日々◆◆管理計算書【犬】.xlsm     100,000 
合計集計                248,000  

#---ここまでです。

これを「C列」に ○個 という風にしたいです。

#---**新しく追加してほしいです☆

A列                  B列       C列
G日々○○管理報告書【うさぎ】.xlsm   48,000     10個

 P日々◆◆管理計算書【猫】.xlsm     100,000 
 P日々◆◆管理計算書【犬】.xlsm     100,000 
合計集計                248,000  

#---**ここまでです。

Pのシートも読みこみしてもらっていますが、Pの方は個数は入れなくてOKです。
このまま、ファイル名と金額のみでOKです。

すみません(>_<)またお伝えがへたっぴで。
昨日よりはうまく伝わっていると良いんですけど(^-^;

お忙しい所すみませんがよろしくお願いします。

(りりちゃん☆彡) 2016/12/07(水) 21:31


 それでは追加場所はわずかですが、フルセット。
 なお、集計表シートの C列は 表示書式設定 ユーザー定義で 0"個" といったように設定しておきましょう。
 folderサブプロシジャは、そのまま使います。

 Sub 日々管理報告書集計3()
    Dim w As Worksheet
    Dim n As Long
    Dim Merge_book As String
    Dim Folder_path As String
    Dim mx As Long
    Dim target As Variant   'データ型変更
    Dim 個数 As Variant     '★追加

    'フォルダの場所を変数に入れる
    Folder_path = folder
    If Folder_path = "" Then Exit Sub   'フォルダダイアログでキャンセルボタンが押された

    'マクロブックを開くので万が一イベントプロシジャ等があった場合に備えて
    Application.EnableEvents = False
    '処理中の画面の動きを隠す
    Application.ScreenUpdating = False

    '集計先のシートを指定し、変数に入れる
    Set w = ThisWorkbook.Worksheets("集計表")   'ThisWorkbook修飾はこのマクロ自体では不要ですが、複数ブックを扱う処理なのでわかりやすくするために。
    'いったん数値をクリア
    w.Range("a2", "b" & Rows.Count).Clear
    '集計するブックを変数に入れる
    Merge_book = Dir(Folder_path & "\*.xls*")

    '集計先のシートの2行からスタート
    n = 2
    '指定したフォルダから、Excdelファイルを探す
    Do Until Merge_book = ""
        If Merge_book <> ThisWorkbook.Name Then
            Workbooks.Open Filename:=Folder_path & "\" & Merge_book
            target = Empty
            個数 = Empty    '★追加
            'ブック名の頭の文字により参照する値がかわる
            If Left(Merge_book, 1) = "G" Then
                target = Workbooks(Merge_book).Worksheets("費用").Range("am2").Value
                個数 = Workbooks(Merge_book).Worksheets("費用").Range("ae2").Value     '★追加
            Else
                target = Workbooks(Merge_book).Worksheets("出力").Range("f12").Value
            End If

            If Not IsEmpty(target) Then   '念のため、G,P以外のブックは対象外

                '見つかったら、A列にファイル名、B列に集計値を入れる ★追加 C列に個数もいれる
                w.Range("a" & n).Value = Merge_book
                w.Range("b" & n).Value = target
                w.Range("c" & n).Value = 個数       '★追加
                '次の行へ
                n = n + 1
            End If

            '集計するブックを閉じる
            Workbooks(Merge_book).Close False   '揮発性関数等があった場合の保存メッセージを回避。保存なしで閉じる。
        End If
        '次のファイルを探しに行く
        Merge_book = Dir()
    Loop

    '集計表シートの最終行
    mx = w.Range("A" & w.Rows.Count).End(xlUp).Row
    'B列,C列の最終行の下に金額の集計を入れる。
    w.Range("B" & mx + 1).Formula = "=SUM(B2:B" & mx & ")"
    'A列の最終行の下に集計の合計を入れる。
    w.Range("A" & mx + 1).Value = "合計集計"

    'イベント発生再開
    Application.EnableEvents = False

 End Sub

(β) 2016/12/07(水) 22:02


(β)様

こんばんわ。りりちゃん☆彡です。

すっかり別件の方で、嬉しくなっちゃってお返事するの忘れてしまってました。
スミマセン(>_<)

報告書の追加コードの件、ありがとうございました。

なお、集計表シートの C列は 表示書式設定 ユーザー定義で 0"個" といったように設定しておきましょう。 の件、承知しました。

追加する時ってどうやればできるんだろうって、思っていたけどこうゆう風に書くんですね。
全然想像がついていなかったです。やっぱりまだまだです(:_;)
でも、すごく勉強になります。

りりも、頑張らなくっちゃ。

今回もどうもありがとうございました。
すっかりお返事が遅くなってしまった事、本当にごめんなさい。

また色々教えていただけたら嬉しいです<(_ _)>
(りりちゃん☆彡) 2016/12/09(金) 21:34


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.