Добрый вечер!!!Помогите пожалуйста доработать интересную задумку.Форма почти готова(сделал для примера 2 листа,а так их 20) Суть проблемы состоит в том,чтобы по заданной дате вставлять заполненные значения с формы на листы,наверное без применения ВПР не обойтись Файл пример прилагается.
Добрый вечер!!!Помогите пожалуйста доработать интересную задумку.Форма почти готова(сделал для примера 2 листа,а так их 20) Суть проблемы состоит в том,чтобы по заданной дате вставлять заполненные значения с формы на листы,наверное без применения ВПР не обойтись Файл пример прилагается.gge29
Для любого количества листов Условие такое - параллельные Label и TextBox должны называться с одинаковыми числовыми индексами (Label и TextBox1, Label2 и TextBox2, Label3 и TextBox3,...) и больше Label и TextBox с числовыми индексами на форме быть не должно (по крайней мере с индексами, меньшими количества листов в книге минус 1). И да, например, Label_1 - это НЕ числовой индекс И доделал там у Вас ввод из календаря
[vba]
Код
Private Sub CommandButton1_Click() On Error Resume Next shn_ = ThisWorkbook.Sheets.Count - 1 If IsDate(TextBoxDate.Value) Then ad_ = Sheets(Replace(Label1.Caption, "Лист ", "")).Cells.Find(What:=CDate(TextBoxDate.Value)).Address ReDim ar(1 To shn_, 1 To 2) For Each dd In SPR.Controls dcc = dd.Name If IsNumeric(Replace(dd.Name, "Label", "")) Then lb_ = lb_ + 1 ar(lb_, 1) = Replace(dd.Caption, "Лист ", "") End If If IsNumeric(Replace(dd.Name, "TextBox", "")) Then tb_ = tb_ + 1 ar(tb_, 2) = dd.Value End If Next dd For i = 1 To shn_ Sheets(ar(i, 1)).Range(ad_).Offset(, 1) = ar(i, 2) Next i End If End Sub
[/vba]
Для любого количества листов Условие такое - параллельные Label и TextBox должны называться с одинаковыми числовыми индексами (Label и TextBox1, Label2 и TextBox2, Label3 и TextBox3,...) и больше Label и TextBox с числовыми индексами на форме быть не должно (по крайней мере с индексами, меньшими количества листов в книге минус 1). И да, например, Label_1 - это НЕ числовой индекс И доделал там у Вас ввод из календаря
[vba]
Код
Private Sub CommandButton1_Click() On Error Resume Next shn_ = ThisWorkbook.Sheets.Count - 1 If IsDate(TextBoxDate.Value) Then ad_ = Sheets(Replace(Label1.Caption, "Лист ", "")).Cells.Find(What:=CDate(TextBoxDate.Value)).Address ReDim ar(1 To shn_, 1 To 2) For Each dd In SPR.Controls dcc = dd.Name If IsNumeric(Replace(dd.Name, "Label", "")) Then lb_ = lb_ + 1 ar(lb_, 1) = Replace(dd.Caption, "Лист ", "") End If If IsNumeric(Replace(dd.Name, "TextBox", "")) Then tb_ = tb_ + 1 ar(tb_, 2) = dd.Value End If Next dd For i = 1 To shn_ Sheets(ar(i, 1)).Range(ad_).Offset(, 1) = ar(i, 2) Next i End If End Sub