Столкнулась с такой проблемой как поиск данный по листам из ComboBox и добавление данных из TextBox в ячейки Excel. Так как не зная макрос,сделала форму и поместила на нее ComboBox и 14 TextBox. Суть такова что у нас имеет постоянные данные в таблице в столбце C. поэтому поместила ComboBox(его задача искать в столбцах С данные), а TextBox добавляет добавляет вводимые данные в ячекий в нужной строке
[vba]
Код
Private Sub CommandButton1_Click()
Dim i As Integer
Dim R As Range
For i = 4 To 100 Step 1 Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i) If R.Value = Empty Then R.Value = TextBox1.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 1) R.Value = TextBox2.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 2) R.Value = TextBox3.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 3) R.Value = TextBox4.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 4) R.Value = TextBox5.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 5) R.Value = TextBox6.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 6) R.Value = TextBox7.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 7) R.Value = TextBox8.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 8) R.Value = TextBox9.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 9) R.Value = TextBox10.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 10) R.Value = TextBox11.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 11) R.Value = TextBox12.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 12) R.Value = TextBox13.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 13) R.Value = TextBox14.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 14)
Exit For End If Next i
End Sub
[/vba]
Столкнулась с такой проблемой как поиск данный по листам из ComboBox и добавление данных из TextBox в ячейки Excel. Так как не зная макрос,сделала форму и поместила на нее ComboBox и 14 TextBox. Суть такова что у нас имеет постоянные данные в таблице в столбце C. поэтому поместила ComboBox(его задача искать в столбцах С данные), а TextBox добавляет добавляет вводимые данные в ячекий в нужной строке
[vba]
Код
Private Sub CommandButton1_Click()
Dim i As Integer
Dim R As Range
For i = 4 To 100 Step 1 Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i) If R.Value = Empty Then R.Value = TextBox1.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 1) R.Value = TextBox2.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 2) R.Value = TextBox3.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 3) R.Value = TextBox4.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 4) R.Value = TextBox5.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 5) R.Value = TextBox6.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 6) R.Value = TextBox7.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 7) R.Value = TextBox8.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 8) R.Value = TextBox9.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 9) R.Value = TextBox10.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 10) R.Value = TextBox11.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 11) R.Value = TextBox12.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 12) R.Value = TextBox13.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 13) R.Value = TextBox14.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + 14)
Файл вроде на русском, а вот вопрос я даже не знаю.
Так и имя у девушки вроде русское в профиле... А вот вопрос реально, такое ощущение что переводился с английского через гугл переводчик)))))
Если я правильно понимаю, то топикстартер хочет заменять уже внесенные в листы данные через эту же форму. Чтоб в комбобокс выбрать нужный элемент, а текстбоксы заполнились сразу автоматом и всё что нужно подправить, всё чего не хватает довнести и изменить. Это единственное до чего довела фантазия))))
Файл вроде на русском, а вот вопрос я даже не знаю.
Так и имя у девушки вроде русское в профиле... А вот вопрос реально, такое ощущение что переводился с английского через гугл переводчик)))))
Если я правильно понимаю, то топикстартер хочет заменять уже внесенные в листы данные через эту же форму. Чтоб в комбобокс выбрать нужный элемент, а текстбоксы заполнились сразу автоматом и всё что нужно подправить, всё чего не хватает довнести и изменить. Это единственное до чего довела фантазия))))DJ_Marker_MC
Я так до конца пока что и не вник что хотел автор, но первое что нужно сделать изначально, так это однозначно уменьшить код:
[vba]
Код
Private Sub CommandButton1_Click() Dim i As Integer Dim q As Integer Dim R As Range Dim Tb As MSForms.TextBox, TBN As String
For i = 4 To 100 Step 1 Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i) If R.Value <> Empty Then For q = 1 To 14 TBN = "TextBox" & q Set Tb = Me.Controls.Item(TBN) R.Value = Tb.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + q) Exit For Next q End If Next i End Sub
[/vba]
Я так до конца пока что и не вник что хотел автор, но первое что нужно сделать изначально, так это однозначно уменьшить код:
[vba]
Код
Private Sub CommandButton1_Click() Dim i As Integer Dim q As Integer Dim R As Range Dim Tb As MSForms.TextBox, TBN As String
For i = 4 To 100 Step 1 Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i) If R.Value <> Empty Then For q = 1 To 14 TBN = "TextBox" & q Set Tb = Me.Controls.Item(TBN) R.Value = Tb.Text Set R = Worksheets("Январь").Cells(ComboBox1.ListIndex + 2, i + q) Exit For Next q End If Next i End Sub
Если я правильно понимаю, то топикстартер хочет заменять уже внесенные в листы данные через эту же форму. Чтоб в комбобокс выбрать нужный элемент, а текстбоксы заполнились сразу автоматом и всё что нужно подправить, всё чего не хватает довнести и изменить. Это единственное до чего довела фантазия))))
Если я правильно понимаю, то топикстартер хочет заменять уже внесенные в листы данные через эту же форму. Чтоб в комбобокс выбрать нужный элемент, а текстбоксы заполнились сразу автоматом и всё что нужно подправить, всё чего не хватает довнести и изменить. Это единственное до чего довела фантазия))))