Используйте Excel VBA для заполнения базы данных платежами, разбитыми по месяцам

Я делаю электронную таблицу, чтобы контролировать свои финансы. Я сделал код VBA, где я ввожу 4 разных данных: i) имя клиента; ii) Общая стоимость контракта; iii) количество месяцев, в течение которых контракт будет оплачен; iv) Дата первого платежа.

Я смог завершить и использовать код, который заполняет базу данных этой информацией в 4 разных столбцах.

Дело в том, что я хочу, чтобы (когда я нажимаю кнопку «Вставить») автоматически разделялось значение и заполнялось датами в соответствии с количеством месяцев, в течение которых оно будет выплачиваться (оплата в рассрочку). Например:

ПОЛЬЗОВАТЕЛЬСКАЯ ФОРМА

  1. Имя клиента: Джон
  2. Общая стоимость: $ 1,000.00
  3. Количество платежей: 4
  4. Дата первого платежа: 01.01.2020

При этом Джон заплатит мне 250 долларов 01.01.2020 (январь); 250 долларов 01.02.2020 (февраль) и так далее... и я хочу, чтобы в базе данных это отображалось примерно так:

Клиент Ценить Дата - мм/дд/гггг Клэр 2000 05.12.2019 (пример разового платежа по базе) Джон 250 01.01.2020 Джон 250 01.02.2020 Джон 250 01.03.2020 Джон 250 01.04.2020 Отметка 500 02.06.2020 (пример)

И я понятия не имею, как это сделать... Может кто-нибудь мне помочь?

Код:

Private Sub cmdAdd_Click()

Dim iRow As Long
Dim ws As Worksheet

Set ws = Worksheets("Projetos")

'find first empty row in database
iRow = ws.Cells.Find(What: = "*", SearchOrder:=xlRows, _
    SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1
    
'copy the data to the database
With ws
  .Cells(iRow, 2).Value = Me.boxCliente.Value
  .Cells(iRow, 3) = CCur(boxValor.Value)
  .Cells(iRow, 4).Value = Me.boxParcela.Value
  .Cells(iRow, 5) = CDate(boxData.Value)
End With

'clear the data
Me.boxCliente.Value = ""
Me.boxValor.Value = ""
Me.boxParcela.Value = ""
Me.boxData.Value = ""

End Sub
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
0
148
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете попробовать этот код.

Это всегда можно оптимизировать. Возможно, небольшое исправление возможно. Но без текстового даташита не понятно.

Private Sub cmdAdd_Click()

Dim iRow As Long
Dim ws As Worksheet
Dim Name a string
Dim counter As Integer
Dim money As Double
Dim Date as Date
Dim i As Integer

Set ws = Worksheets("Projetos")

'find first empty row in database
iRow = ws.Cells.Find(What: = "*", SearchOrder:=xlRows, _
    SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1
    
'copy the data to the database
With ws
  .Cells(iRow, 2).Value = Me.boxCliente.Value 'Client
  .Cells(iRow, 3) = CCur(boxValor.Value) 'Money
  .Cells(iRow, 4).Value = Me.boxParcela.Value 'Number of Payments
  .Cells(iRow, 5) = CDate(boxData.Value) 'Date
  
  If .Cells(iRow, 4) <> 1 Then
    Name = .Cells(iRow, 2).Value
    counter = .Cells(iRow, 4).Value
    money = .Cells(iRow, 3).Value
    Date = .Cells(iRow, 5).Value
    
    For i = 0 To counter - 1
        .Cells(iRow + i, 2).Value = Name
        .Cells(iRow + i, 3).Value = money / counter
        .Cells(iRow + i, 5).Value = Format(DateAdd("m", i, Date), "mmddyyyy")
    Next i
        
End With

'clear the data
Me.boxCliente.Value = ""
Me.boxValor.Value = ""
Me.boxParcela.Value = ""
Me.boxData.Value = ""

End Sub

Ух ты! Это сработало как шарм! Большое спасибо! Мне просто нужно было сделать несколько вещей, чтобы заставить его работать. Спасибо Спасибо

João Lucas Duarte 15.12.2020 01:00

Другие вопросы по теме