アプリ版:「スタンプのみでお礼する」機能のリリースについて

賃貸アパートの家賃入金チェックシステムをエクセルで作成したいのです。
左側の入金データをもとに、右側のフォームに転記できるような式を教えてもらえませんか?
月を判定させて、VLOOKUPで振り分けられると思ったのですが、同一月に複数回入金があるケースがあるので、困っています。

「エクセルで、預金などの入金データを、行(」の質問画像

A 回答 (4件)

No1です。


お尋ねするだけで止まってしまっていてすみませんでした。
他の方からコードを書いてもらえたようで良かったです。
VBAの勉強頑張って下さいね^^
    • good
    • 0

No.2です。



細かい検証をしていませんでした。

前回のコードの
>myRow = .Cells(myRow, myCol).End(xlDown).Row + 1
の1行を

>Do Until .Cells(myRow, myCol) = ""
>myRow = myRow + 1
>Loop

の3行に変更してください。

どうも失礼しました。m(_ _)m
    • good
    • 0
この回答へのお礼

かしこまりました。ありがとうございます。

お礼日時:2020/05/11 21:11

こんばんは!



「名義」?は一人当たり3行と決まっているのですかね?
VBAでの一例です。

↓の画像のような配置で元データはSheet1にあり、Sheet2に表示するとします。
尚、Sheet2のA列の「名義」?と1行目の○月の部分は入力済みだとします。
(Sheet2の1行目はシリアル値ではなく、文字列です)

標準モジュールにしてください。

Sub Sample1()
 Dim i As Long
 Dim lastRow As Long, lastCol As Long
 Dim wS As Worksheet
 Dim myRow, myCol

  Set wS = Worksheets("Sheet1")
   With Worksheets("Sheet2")
    '//▼Sheet2のデータを一旦消去//
     lastRow = .UsedRange.Rows.Count
     lastCol = .Cells(1, Columns.Count).End(xlToLeft).Column
      If lastRow > 1 Then
       Range(.Cells(2, "B"), .Cells(lastRow, lastCol + 2)).ClearContents
      End If

    '//▼ココから操作//
     For i = 2 To wS.Cells(Rows.Count, "A").End(xlUp).Row
      myRow = Application.Match(wS.Cells(i, "E"), .Range("A:A"), False)
      myCol = Application.Match(Month(wS.Cells(i, "A")) & "月", .Rows(1), False)
       If IsNumeric(myRow) And IsNumeric(myCol) Then '//←念のため//
        If .Cells(myRow, myCol) <> "" Then
         myRow = .Cells(myRow, myCol).End(xlDown).Row + 1
        End If
         With .Cells(myRow, myCol)
          .NumberFormatLocal = wS.Cells(i, "A").NumberFormatLocal
          .Value = wS.Cells(i, "A")
          .Offset(, 1) = wS.Cells(i, "B")
         End With
       End If
     Next i
      .Activate
   End With
    MsgBox "完了"
End Sub

※ 関数でないのでデータ変更があるたびにマクロを実行する必要があります。m(_ _)m
「エクセルで、預金などの入金データを、行(」の回答画像2
    • good
    • 0
この回答へのお礼

ありがとうございます。今日入門者のエクセルVBAの本を買ってきて読んでいたところに、この様なアドバイスを頂き感激です。これから、本を読みながら解読していきたいと思いますが、取り急ぎお礼です。

お礼日時:2020/05/11 19:05

こんにちは。


Excelの数式でなんとか出来ないか考えてみたのですがいい方法が思いつきませんでした。
同じ月度内に同じ人の入金があった場合ナンバリングをつけるような処理が必要になってくるかと思うのですがそれはVBAの方が良いかと思います。
VBAは使用しても大丈夫でしょうか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。VBAを勉強しようと考えていたのですが、VBAを活用すれば解決しそうなんですね?もしよろしければ、少し考え方のヒントを頂けませんか?

お礼日時:2020/05/10 15:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!