[[20140911104717]] 『売上一覧表から入金管理表に連動させたい』(しゅうじ77) ページの最後に飛ぶ

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

 

『売上一覧表から入金管理表に連動させたい』(しゅうじ77)

ご教授願います。

シート1に売上を下記のように入力します。

顧客  振込名  締日  入金日   入金銀行  1月  2月  ・・・・・

A社  a社  30日  翌30日   C銀行  10000  20000  ・・・・

B社  b社  20日  翌10日   D銀行  30000  40000  ・・・・

この売上一覧表から別シートに入金管理表を作成をしたいのですが1か月様々な関数を
使用しましたが上手くいきません。

抽出したい項目は 例えばA社の1月の売り上げが10000円、2月末C銀行に入金されます。
この情報を入金日、銀行毎の管理表を作成したいのです。例えば2月末日の入金一覧、
3月10日の入金一覧、そこから細分化しての銀行別一覧というように抽出したいのです。

何卒宜しく御願い致します。

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


 翌30日 → 2月、どうすんの? 28日?(閏年は29日)

 あと「年」はどう捕らえるの?
 
(GobGob) 2014/09/12(金) 08:05

本当は2月は28日としたいのですが末日や3月1日でもと考えています。
年は1年ごとのファイルにしようと思っています。
(しゅうじ77) 2014/09/12(金) 08:38


 マクロを使って、一覧表を作る案です。

 Sheet1のD列の「入金日」は、一つの列に「翌10日」の様に入っていますが
 それぞれわけて D列「翌」 E列「10」の様に入力して下さい。

 また、30日の場合は「末」と入力して下さい。

 Sheet1の1行目の月の表示されているセルは
 2014/1/1 の様に日付として入力し、表示形式で「m"月"」などとして下さい。
  ご希望であれば、どこかに「年」を入力するセルを設けてもらって
  1行目には「1」「2」等 数値で入力する事も出来ますが。

 Sheet1は間に一列挿入があるので
	[A]	[B]	[C]	[D]	[E]	[F]	[G]	[H]
[ 1]	顧客	振込名	締日	入金日		銀行	1月	2月

 Sheet2の方は
	[A]	[B]	[C]	[D]	[E]	[F]	[G]	[H]	[I]
[ 1]	顧客	振込名	締日	入金日		銀行	予定日	金額	月
 と見出しをつけて、I列は Sheet1同様 「m"月"」の表示形式を設定しておいてください。

 Sheet2のシートモジュールに以下のコードを貼り付け。

 '------
Private Sub Worksheet_Activate()
Dim i As Long, ii As Long
Dim MyR As Long
Dim tbl As Variant

    MyR = 1
    With Sheets("Sheet1")
        tbl = .Range("A1:R" & .Range("A" & Rows.Count).End(xlUp).Row).Value
    End With
        Range("A2:I" & Range("A" & Rows.Count).End(xlUp).Row).ClearContents

    For i = 2 To UBound(tbl, 1)
        For ii = 7 To UBound(tbl, 2)
            If tbl(i, ii) <> "" Then
                MyR = MyR + 1
                Range("A" & MyR).Value = tbl(i, 1)
                Range("B" & MyR).Value = tbl(i, 2)
                Range("C" & MyR).Value = tbl(i, 3)
                Range("D" & MyR).Value = tbl(i, 4)
                Range("E" & MyR).Value = tbl(i, 5)
                Range("F" & MyR).Value = tbl(i, 6)
                Range("G" & MyR).Value = REC(tbl(i, 4), tbl(i, 5), tbl(1, ii))
                Range("H" & MyR).Value = tbl(i, ii)
                Range("I" & MyR).Value = tbl(1, ii)
            End If
        Next
    Next
End Sub
Function REC(NMonth, NDay, UDay) As Date
Dim PuLM As Long, KijD As Long
    Select Case NMonth
        Case "翌"
            PuLM = 1
        Case "翌々"
            PuLM = 2
    End Select

    If NDay = "末" Then
        PuLM = PuLM + 1
        KijD = 0
    Else
        KijD = NDay
    End If

    REC = DateSerial(Year(UDay), Month(UDay) + PuLM, KijD)
End Function
 '------

 Case "翌"  Case "翌々"
 部分のパターンは、必要に応じて適宜追加して下さい。

 Sheet2をアクティブにすると、自動実行されます。
  
(HANA) 2014/09/13(土) 09:42

コメント返信:

[ 一覧(最新更新順) ]


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