Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Добавление строк в таблицу с уникальным индексом - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Добавление строк в таблицу с уникальным индексом (Макросы/Sub)
Добавление строк в таблицу с уникальным индексом
Raven2009 Дата: Четверг, 28.11.2019, 14:30 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день.

Просьба подсказать, как такое можно реализовать?

Есть форма (вызывается по кнопке), где в текстбоксах вводится наименование и кол-во поддонов.

Логика такая:

- ввели в форме например Грунт и 5 поддонов и нажали кнопку
- в таблицу , начиная с новой строки, добавилось 5 строк с порядковым индексом поддона в ид_поддона.

Индекс идет всегда по возрастающей. Парочку примеров, как должно примерно выглядеть, в таблице я привел. Индекс такого формата 100000*, не важно в принципе, самое главное - чтобы не повторялся и был последовательный))
К сообщению приложен файл: test23.rar(15.7 Kb)
 
Ответить
СообщениеДобрый день.

Просьба подсказать, как такое можно реализовать?

Есть форма (вызывается по кнопке), где в текстбоксах вводится наименование и кол-во поддонов.

Логика такая:

- ввели в форме например Грунт и 5 поддонов и нажали кнопку
- в таблицу , начиная с новой строки, добавилось 5 строк с порядковым индексом поддона в ид_поддона.

Индекс идет всегда по возрастающей. Парочку примеров, как должно примерно выглядеть, в таблице я привел. Индекс такого формата 100000*, не важно в принципе, самое главное - чтобы не повторялся и был последовательный))

Автор - Raven2009
Дата добавления - 28.11.2019 в 14:30
Nic70y Дата: Четверг, 28.11.2019, 15:26 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5734
Репутация: 1259 ±
Замечаний: 0% ±

ru13;10;03
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
[/vba]
К сообщению приложен файл: test23.xlsm(21.4 Kb)


ЯД(poison) 41001841029809
 
Ответить
Сообщение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
[/vba]

Автор - Nic70y
Дата добавления - 28.11.2019 в 15:26
Kuzmich Дата: Четверг, 28.11.2019, 15:27 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 430
Репутация: 88 ±
Замечаний: 0% ±

Excel 2003
Что-то типа так
[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
[/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
[/vba]

Автор - Kuzmich
Дата добавления - 28.11.2019 в 15:27
Raven2009 Дата: Четверг, 28.11.2019, 15:45 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Спасибо всем)) Оба способа сохраню и буду применять!)))

А как сделать так, чтобы максимальный номер индекса, добавленный в таблицу перезаписывался в отдельную ячейку скажем и при следующем добавлении строк в нее счетчик стартовал +1 от значения в ней?

Я к тому, что данные из таблицы будут уходить в другую книгу (типа в историю). Извиняюсь, что не сразу спросил, проект пока на стадии создания, многое не сразу задумывается...
 
Ответить
СообщениеСпасибо всем)) Оба способа сохраню и буду применять!)))

А как сделать так, чтобы максимальный номер индекса, добавленный в таблицу перезаписывался в отдельную ячейку скажем и при следующем добавлении строк в нее счетчик стартовал +1 от значения в ней?

Я к тому, что данные из таблицы будут уходить в другую книгу (типа в историю). Извиняюсь, что не сразу спросил, проект пока на стадии создания, многое не сразу задумывается...

Автор - Raven2009
Дата добавления - 28.11.2019 в 15:45
Kuzmich Дата: Четверг, 28.11.2019, 16:00 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 430
Репутация: 88 ±
Замечаний: 0% ±

Excel 2003
Цитата
максимальный номер индекса, добавленный в таблицу перезаписывался в отдельную ячейку скажем

В 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
[/vba]

Автор - Kuzmich
Дата добавления - 28.11.2019 в 16:00
Raven2009 Дата: Четверг, 28.11.2019, 16:07 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Огромное спасибо! Все отлично работает!)))
 
Ответить
СообщениеОгромное спасибо! Все отлично работает!)))

Автор - Raven2009
Дата добавления - 28.11.2019 в 16:07
Raven2009 Дата: Четверг, 28.11.2019, 19:54 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Прошу прощения. это последний вопрос. Таблица не с первой строки будет в оригинале. Что мне в коде поправить, чтобы правильно записывалось?

Там умная таблица, как то правильно написать нужно, но одна строка стирается при добавлении?
К сообщению приложен файл: 6853437.rar(20.1 Kb)


Сообщение отредактировал Raven2009 - Четверг, 28.11.2019, 19:54
 
Ответить
СообщениеПрошу прощения. это последний вопрос. Таблица не с первой строки будет в оригинале. Что мне в коде поправить, чтобы правильно записывалось?

Там умная таблица, как то правильно написать нужно, но одна строка стирается при добавлении?

Автор - Raven2009
Дата добавления - 28.11.2019 в 19:54
Kuzmich Дата: Четверг, 28.11.2019, 20:14 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 430
Репутация: 88 ±
Замечаний: 0% ±

Excel 2003
[vba]
Код
iLastRow = objInb.ListRows.Count + 2
[/vba]
 
Ответить
Сообщение[vba]
Код
iLastRow = objInb.ListRows.Count + 2
[/vba]

Автор - Kuzmich
Дата добавления - 28.11.2019 в 20:14
Raven2009 Дата: Четверг, 28.11.2019, 22:03 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Всего лишь +2 вместо +1. Огромное спасибо!
 
Ответить
СообщениеВсего лишь +2 вместо +1. Огромное спасибо!

Автор - Raven2009
Дата добавления - 28.11.2019 в 22:03
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Добавление строк в таблицу с уникальным индексом (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2019 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!