Excel VBA質問箱 IV

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

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


9583 / 13644 ツリー ←次へ | 前へ→

【26547】抽出結果の計算&別シートへのコピー pinky 05/7/8(金) 14:43 質問[未読]
【26554】Re:抽出結果の計算&別シートへのコピー ponpon 05/7/9(土) 1:36 発言[未読]

【26547】抽出結果の計算&別シートへのコピー
質問  pinky  - 05/7/8(金) 14:43 -

引用なし
パスワード
   請求書を作成してます。マスターから別会社5社に振り分けをしなくてなりません。それで、マクロを利用してマスターから、会社Aのみを抽出しました。そこで、その結果の合計金額を算出したいのですが、どうしたらよいのでしょう?
また、その算出結果を、請求書の合計金額の方に貼り付けもしたい。

ちなみに、扱ってるデータの説明をすると、携帯の精算ですので、横並びに携帯番号、請求先会社名、後は4月から3月まで。縦には、各電話番号が記されてます。

携帯番号     会社名 4月  5月  6月 
090−xxxx−xxxx 会社A ¥100 ¥150 ¥200
090−xxxx−xxxx 会社B 

のようになってます。よろしく!!!

【26554】Re:抽出結果の計算&別シートへのコピー
発言  ponpon  - 05/7/9(土) 1:36 -

引用なし
パスワード
   こんばんは。
シートマスターから各社ごとにオートフィルターを実施し、
新しいシートに貼り付けています。
合計も一応出していますが、
こういう意味でなかったらすみません。
なお、金額は表示形式のみで入力されているのは数値として考えてます。

Sub test()
  Dim myR  As Range
  Dim mySH1 As Worksheet
  Dim mySH As Worksheet
  Dim sh As Worksheet
  Dim myVal As Variant
  Dim myCol As Long
  Dim myRow As Long
  Dim i As Integer, j As Integer
  
  Application.ScreenUpdating = False
  
  For Each sh In ThisWorkbook.Worksheets
    If Not sh.Name = "マスター" Then
     Application.DisplayAlerts = False
     sh.Delete
     Application.DisplayAlerts = True
    End If
  Next
  
  Set mySH1 = Worksheets("マスター")
  Set myR = mySH1.Range("A1").CurrentRegion
  
    myVal = Array("会社A", "会社B", "会社C", "会社D", "会社E")
  
  For i = 0 To UBound(myVal)
   
   Set mySH = Worksheets.Add(after:=Sheets(Sheets.Count))
     mySH.Name = myVal(i) & "のデータ"
   With myR
     .AutoFilter field:=2, Criteria1:=myVal(i)
     .Copy mySH.Range("A1")
     .AutoFilter
   End With
   With mySH.Range("A65536").End(xlUp)
     myCol = Range("A1").End(xlToRight).Column
     myRow = .Row
     For j = 2 To myCol - 1
     .Offset(2, 1).Value = "合計"
     With .Offset(2, j)
        .Value = WorksheetFunction.Sum(Range(Cells(2, j + 1), Cells(myRow, j + 1)))
        .NumberFormatLocal = "\#,##0;\-#,##0"
     End With
     Next j
     mySH.Range("A1").End(xlToRight).Offset(0, 2).Value = "合計"
     For j = 1 To myRow - 1
     With Range("A1").Offset(j, myCol + 1)
        .Value = WorksheetFunction.Sum(.Offset(0, -myCol).Resize(1, myCol - 2))
        .NumberFormatLocal = "\#,##0;\-#,##0"
     End With
     Next j
   End With
  Next i
  
  Application.ScreenUpdating = True

End Sub

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