День добрый! Помогите пожалуйста чайнику) Поиск не дал результатов( В приложенном файле 2 листа. "Лист1" для ввода данных, а "Лист2" - для формирования документа. Необходимо чтобы в зависимости от заполнения данных на "Лист1" товарами, на "Лист2" расширялась таблица, если товаров больше. Например, если на "листе 1" 2 товара, тогда получалась таблица как сейчас есть в примере, если 10 товаров, тогда таблица на листе 2 расширилась, и строка 8 сместилась вниз на нужное количество товаров. Т.е. размер таблицы зависел от количества строк на "листе1" Всех с прошедшим праздником, заранее спасибо!
День добрый! Помогите пожалуйста чайнику) Поиск не дал результатов( В приложенном файле 2 листа. "Лист1" для ввода данных, а "Лист2" - для формирования документа. Необходимо чтобы в зависимости от заполнения данных на "Лист1" товарами, на "Лист2" расширялась таблица, если товаров больше. Например, если на "листе 1" 2 товара, тогда получалась таблица как сейчас есть в примере, если 10 товаров, тогда таблица на листе 2 расширилась, и строка 8 сместилась вниз на нужное количество товаров. Т.е. размер таблицы зависел от количества строк на "листе1" Всех с прошедшим праздником, заранее спасибо!Gorynych
Sub Tablica() Dim i As Long Dim iLastRow As Long Dim iLR As Long With Worksheets("Лист2") iLR = .Cells(.Rows.Count, "B").End(xlUp).Row + 1 .Range("B5:D" & iLR).Clear iLastRow = Cells(Rows.Count, "B").End(xlUp).Row For i = 2 To iLastRow iLR = .Cells(.Rows.Count, "B").End(xlUp).Row + 1 .Cells(iLR, "B") = i - 1 .Cells(iLR, "C") = Cells(i, "B") .Cells(iLR, "D") = Cells(i, "C") .Range("B" & iLR & ":D" & iLR).Borders.Weight = xlThin Next .Cells(iLR + 2, "C") = "ИТОГО: " .Cells(iLR + 2, "C").HorizontalAlignment = xlRight .Cells(iLR + 2, "D") = WorksheetFunction.Sum(.Range("D5:D" & iLR)) .Cells(iLR + 2, "D").Font.Bold = True .Activate End With End Sub
[/vba]
Макрос, запускать при активном листе Лист1 [vba]
Код
Sub Tablica() Dim i As Long Dim iLastRow As Long Dim iLR As Long With Worksheets("Лист2") iLR = .Cells(.Rows.Count, "B").End(xlUp).Row + 1 .Range("B5:D" & iLR).Clear iLastRow = Cells(Rows.Count, "B").End(xlUp).Row For i = 2 To iLastRow iLR = .Cells(.Rows.Count, "B").End(xlUp).Row + 1 .Cells(iLR, "B") = i - 1 .Cells(iLR, "C") = Cells(i, "B") .Cells(iLR, "D") = Cells(i, "C") .Range("B" & iLR & ":D" & iLR).Borders.Weight = xlThin Next .Cells(iLR + 2, "C") = "ИТОГО: " .Cells(iLR + 2, "C").HorizontalAlignment = xlRight .Cells(iLR + 2, "D") = WorksheetFunction.Sum(.Range("D5:D" & iLR)) .Cells(iLR + 2, "D").Font.Bold = True .Activate End With End Sub
Спасибо! Только вот осталась одна проблемка... нужно чтобы "произвольный текст" оставался и внизу страницы, сейчас при формировании снизу все удаляется(
Спасибо! Только вот осталась одна проблемка... нужно чтобы "произвольный текст" оставался и внизу страницы, сейчас при формировании снизу все удаляется(Gorynych
Вставляйте этот "произвольный текст" макросом после итоговой строки
Дошло, спасибо!) извините за настойчивость, будет здорово, если еще один момент подскажите, как получить в макросе значения следующие: 1) номер крайнего товара (порядковый из столбца В), т.е. самого последнего, 2) итоговую сумму
Вставляйте этот "произвольный текст" макросом после итоговой строки
Дошло, спасибо!) извините за настойчивость, будет здорово, если еще один момент подскажите, как получить в макросе значения следующие: 1) номер крайнего товара (порядковый из столбца В), т.е. самого последнего, 2) итоговую сумму