【ExcelVBA】顧客別に抽出データをシート転記
現在、顧客毎の支払い明細をExcelで自動発行できるものを作っています。
独学で、以下の状態までは作成できたのですが、その後、どうすれば良いのか分かりません。
[入力シート] ※以下、項目名はA6:O6に記載。
A=No. F=科目名 K=該当期間
B=顧客ID G=業者名 L=本体金額
C=顧客名 H=摘要【抜粋】 M=消費税
D=大項目 I=摘要 N=合計
E=勘定科目 J=説明 O=計上月
上記[入力シート]内の「C=顧客名×O=計上月」を抽出条件としたフィルタオプションで転記
というコードは、下記で成功しました。
※コード内の「顧客テーブル=入力シートの全データ」。「Q_抽出条件=顧客名×計上月」の条件
----------------------------------
Sub 必要なフィールドのみを転記()
Dim myTable As Range, myQuery As Range, taegetRnage As Range
Set myTable = Worksheets("入力Form").Range("顧客テーブル")
Set myQuery = Worksheets("入力Form").Range("Q_抽出条件")
Set targetRange = Worksheets("必要項目のみ転記").Range("b3:l3")
myTable.AdvancedFilter xlFilterCopy, myQuery, targetRange
End Sub
----------------------------------
また、顧客名毎にシート作成し、転記ということも以下コードで成功しています。
※コード内の「myList = Array("顧客A","顧客B","顧客C"・・・・・・・・・・)」は、顧客数分、名前を記載してあります。
----------------------------------
Sub 物件毎に転記()
Dim myTable As Range, mysheet As Worksheet, i As Integer
Dim myList()
myList = Array("顧客A","顧客B","顧客C"・・・・・・・・・・)
Set myTable = Worksheets("入力Form").Range("顧客テーブル")
For i = o To UBound(myList)
Set mysheet = Worksheets.Add(after:=Sheets(Sheets.Count))
mysheet.Name = myList(i) & "_支払明細"
With myTable
.AutoFilter 3, myList(i)
.Copy mysheet.Range("a2")
.AutoFilter
End With
mysheet.Range("a2").CurrentRegion.EntireColumn.AutoFit
Next
End Sub
----------------------------------
まず、顧客数分の抽出先(転記先)明細シートを用意し、必要な項目名だけを
記載しておくので、そこに「顧客名」×「計上月」の抽出条件で抽出された内容を
顧客別に指定シートに、転記したいのです。
※「顧客名」で転記先シートを予め指定できるのであれば、抽出条件は「計上月」だけで構いません。
顧客数が30件程あり、毎月、入力シートに売上データは追記されていきます。
その蓄積されていくデータの中から、一括で「(1)計上月指定 (2)顧客名別の指定シートに該当データのみを転記 (3)顧客名に該当する転記先シートがなければ、新しくシートを作成した上で転記」
という作業を行いたいと考えています。
※(3)は、Want条件なのでなくても大丈夫です。
あまりVBAの知識がない為、コードの記載方法など詳細に教えていただければ幸いです。
何卒よろしくお願い致します。
補足
毎度ありがとうございます。 1ファイル化が、かなり進行してきました。 決断して良かったです。 上記の件は、場所、サイズの設定、ひらがな検索なども含め 検索を実行させることが出来ました。 簡単でした。 この後は、売り買いの納期遅延などのカラー表示での リマインダー的設定や各書類(レイアウト)での ウインドウサイズの自動伸縮(笑)をやるつもりです。 しかし、FMって面白いですね~ 今後ともよろしくお願いいたします。 ありがとうございました。