рабочая тетрадь
profitloss
UserForm
новая опция пользовательской формы
Пользователь @Lambik очень помог мне в достижении функциональности в этой книге. Успешно удалось получить данные из пользовательской формы1 на листе января 2019 года и в то же время перенести на лист прибыли. То, о чем я не думал, было то, что в прибылях и убытках все поля не могут быть скопированы и вставлены.
Я попытался добавить новую метку и новое текстовое поле в пользовательскую форму и заставить его работать, изучая код, предоставленный @Lambik, но была другая ошибка, не ошибка, это больше похоже на повторение, если я сохраняю отредактированную версию userform1 (Я удалил его, кстати, очень непрактично), тогда, даже если дополнительные поля «не» заполнены в пользовательской форме1, остальные записи все равно попадают в профит потерь, то есть вручную удаляются все записи, которых там не должно быть. Так я думал долго и трудно, и единственным, что я могу думать о том, чтобы добавить флажок на UserForm1 и когда флажок щелкнул только тогда первые два поля из UserForm1 которые коментарий и аренда идут в profitloss вместе с соответствующим месяцем, выбранным из Combobox1. Я думаю, я думаю, что это правильная логика. Если кто-нибудь может помочь с кодом VBA, как этого добиться, используя флажок, я был бы очень признателен. Я прикрепил ссылки на скриншоты рабочей книги, строки столбцов прибыльности, старый userform1 (работает как шарм, спасибо @Lambik) и новый отредактированный userform1 с дополнительной меткой и флажком, чтобы данные копировались на прибыль и убыток лист вместе с текущим выбранным месяцем.
Код, с которым работает userform1,
Private Sub ComboBox1_Change()
Dim SheetName As String
Dim ws As Worksheet
Dim LastRow As Long
SheetName = ComboBox1.Value
Set ws = Sheets(SheetName)
LastRow = ws.Cells(ws.Rows.Count, "G").End(xlUp).Row
Label8.Caption = " Balance is: " & ws.Cells(LastRow, 7).Value
Private Sub CommandButton1_Click()
Dim dcc As Long
Dim abc As Worksheet, pfl As Worksheet
Set abc = ThisWorkbook.Worksheets(Me.ComboBox1.Value)
Set pfl = Sheets("ProfitLoss")
With abc
dcc = .Range("A" & Rows.Count).End(xlUp).Row
.Cells(dcc + 1, 1).Value = Date
.Cells(dcc + 1, 2).Value = Me.TextBox1.Value (comment/source)
.Cells(dcc + 1, 3).Value = Me.TextBox2.Value (rent)
.Cells(dcc + 1, 4).Value = Me.TextBox3.Value
.Cells(dcc + 1, 5).Value = Me.TextBox4.Value
.Cells(dcc + 1, 6).Value = Me.TextBox5.Value
End With
With pfl
dcc = .Range("A" & Rows.Count).End(xlUp).Row
.Cells(dcc + 1, 1).Value = Date
.Cells(dcc + 1, 2).Value = Me.TextBox1.Value (comment/source)
.Cells(dcc + 1, 3).Value = Me.TextBox2.Value (In)
.Cells(dcc + 1, 4).Value = Me.TextBox3.Value
.Cells(dcc + 1, 5).Value = Me.TextBox4.Value
.Cells(dcc + 1, 6).Value = Me.TextBox5.Value
End With
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
End Sub
Добавлен флажок для userform1 - флажок1, и я поместил (комментарий / источник) (аренда) в коде выше, чтобы определить, какие строки необходимо перенести. Если возможно, тогда, когда флажок установлен, то есть запись войдет в январь 2019 года, а также в отчет о прибылях и убытках, тогда эта запись будет автоматически выделена и изменит цвет, скажем, на зеленый? или любой в этом отношении. просто выделиться, если userform1 не используется, а пользователь просто смотрит на лист. Я ценю вашу помощь в достижении этого. Заранее спасибо.
Приветствие.
P.S. От userform1 только комментарий и арендная плата должны быть добавлены на лист прибыли, когда флажок установлен и ничего больше.