Есть форма (вызывается по кнопке), где в текстбоксах вводится наименование и кол-во поддонов.
Логика такая:
- ввели в форме например Грунт и 5 поддонов и нажали кнопку - в таблицу , начиная с новой строки, добавилось 5 строк с порядковым индексом поддона в ид_поддона.
Индекс идет всегда по возрастающей. Парочку примеров, как должно примерно выглядеть, в таблице я привел. Индекс такого формата 100000*, не важно в принципе, самое главное - чтобы не повторялся и был последовательный))
Добрый день.
Просьба подсказать, как такое можно реализовать?
Есть форма (вызывается по кнопке), где в текстбоксах вводится наименование и кол-во поддонов.
Логика такая:
- ввели в форме например Грунт и 5 поддонов и нажали кнопку - в таблицу , начиная с новой строки, добавилось 5 строк с порядковым индексом поддона в ид_поддона.
Индекс идет всегда по возрастающей. Парочку примеров, как должно примерно выглядеть, в таблице я привел. Индекс такого формата 100000*, не важно в принципе, самое главное - чтобы не повторялся и был последовательный))Raven2009
Private Sub CommandButton1_Click() u = Cells(Rows.Count, "a").End(xlUp).Row + 1 a = TextBox1.Value b = TextBox2.Value For Each c In Range("a" & u & ":a" & b + u - 1) c.Cells = a c.Offset(0, 1) = Application.Sum(c.Offset(-1, 1), 1) Next End Sub
[/vba]
22 кб зачем в архив? как вариант: [vba]
Код
Private Sub CommandButton1_Click() u = Cells(Rows.Count, "a").End(xlUp).Row + 1 a = TextBox1.Value b = TextBox2.Value For Each c In Range("a" & u & ":a" & b + u - 1) c.Cells = a c.Offset(0, 1) = Application.Sum(c.Offset(-1, 1), 1) Next End Sub
Private Sub CommandButton1_Click() Dim iLastRow As Long Dim i As Long iLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1 If Me.TextBox1 <> "" And Me.TextBox2 <> "" Then For i = 1 To Me.TextBox2 Cells(iLastRow, 1) = Me.TextBox1 Cells(iLastRow, 2) = Cells(iLastRow - 1, 2) + 1 iLastRow = iLastRow + 1 Next End If End Sub
[/vba]
Что-то типа так [vba]
Код
Private Sub CommandButton1_Click() Dim iLastRow As Long Dim i As Long iLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1 If Me.TextBox1 <> "" And Me.TextBox2 <> "" Then For i = 1 To Me.TextBox2 Cells(iLastRow, 1) = Me.TextBox1 Cells(iLastRow, 2) = Cells(iLastRow - 1, 2) + 1 iLastRow = iLastRow + 1 Next End If End Sub
Спасибо всем)) Оба способа сохраню и буду применять!)))
А как сделать так, чтобы максимальный номер индекса, добавленный в таблицу перезаписывался в отдельную ячейку скажем и при следующем добавлении строк в нее счетчик стартовал +1 от значения в ней?
Я к тому, что данные из таблицы будут уходить в другую книгу (типа в историю). Извиняюсь, что не сразу спросил, проект пока на стадии создания, многое не сразу задумывается...
Спасибо всем)) Оба способа сохраню и буду применять!)))
А как сделать так, чтобы максимальный номер индекса, добавленный в таблицу перезаписывался в отдельную ячейку скажем и при следующем добавлении строк в нее счетчик стартовал +1 от значения в ней?
Я к тому, что данные из таблицы будут уходить в другую книгу (типа в историю). Извиняюсь, что не сразу спросил, проект пока на стадии создания, многое не сразу задумывается...Raven2009
максимальный номер индекса, добавленный в таблицу перезаписывался в отдельную ячейку скажем
В D1 последний индекс [vba]
Код
Private Sub CommandButton1_Click() Dim iLastRow As Long Dim i As Long Dim ID As Long iLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1 ID = Range("D1") 'начальный номер If Me.TextBox1 <> "" And Me.TextBox2 <> "" Then For i = 1 To Me.TextBox2 Cells(iLastRow, 1) = Me.TextBox1 Cells(iLastRow, 2) = ID + i iLastRow = iLastRow + 1 Next Range("D1") = Cells(iLastRow - 1, 2) End If End Sub
[/vba]
Цитата
максимальный номер индекса, добавленный в таблицу перезаписывался в отдельную ячейку скажем
В D1 последний индекс [vba]
Код
Private Sub CommandButton1_Click() Dim iLastRow As Long Dim i As Long Dim ID As Long iLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1 ID = Range("D1") 'начальный номер If Me.TextBox1 <> "" And Me.TextBox2 <> "" Then For i = 1 To Me.TextBox2 Cells(iLastRow, 1) = Me.TextBox1 Cells(iLastRow, 2) = ID + i iLastRow = iLastRow + 1 Next Range("D1") = Cells(iLastRow - 1, 2) End If End Sub