Необходимо сделать формулы или макрос который будет оценивать необходимое количество машин для перевозки трубной продукции, исходя из следующих исходных данных 1. Кол-во отрезков трубы каждого диаметра 2. Возможность телескопической перевозки (труба в трубе) 3. максимальная загрузка в машину каждого диаметра
по кнопке "Детализировать" на лист "Детализация продаж" копируются значения 1,2 и 4 столбца из таблицы выше после чего появляется форма следующего вида
Задачи следующие: 1. Если значения в ячейках не пустые, то по кнопке формы "Подтвердить" их нужно перенести в соответствующие строки листа "Детализация продаж", в строчку с последними заполненными первыми тремя столбцами.
2. Очистить ячейки формы от содержимого по кнопке формы "Очистить" без закрытия формы 3. Закрыть форму по кнопке "Закрыть", без выполнения каких либо функций
Задача передо мной тривиальная, но я не пойму логику построения её решения. Есть две книги, условно принимаем что они открыты по умолчанию. Из книги "КП.xlsm" по нажатию кнопки "перенести данные в отчёт" скопировать ячейки (отмеченные желтым) и вставить их в таблицу книги "Отчет.xlsm" в соответствующие столбцы первой незаполненной строки.
Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
Sheets("Вывод").Select
n = Sheets("ввод").Cells(9, 1).Value ' Берется значение непустых строк с листа "ввод"
x = 18 ' Номер строки расположения 1 строчки таблицы
Do While I < n
Sheets("Вывод").Range("A19").EntireRow.Insert
I = I + 1' Добавление нужного кол-ва строк после 1 позиции таблицы
Loop
lr = Sheets("Вывод").Cells(Rows.Count, 1).End(xlUp).Row ' Вот это понятия не имею что делает)))
Sheets("Вывод").Select
Sheets("Вывод").Range("A18:O18").Select ' Выделение 1 позиции таблицы
Selection.AutoFill Destination:=Sheets("Вывод").Range("A18:O" & x + n), Type:=xlFillDefault ' "протягивание" 1 строчки на нужное кол-во строк.
Application.ScreenUpdating = True
End Sub
Суть у него следующая. Есть Лист "Ввод" там заносятся данные для расчета стоимости. Например на листе 5 заполненных строк. После нажатия на кнопку вид переключается на лист "Вывод" там под 1 позицией добавляется 4 (5 - 1, первая строка всегда заполнена) строки и потом 1 строка таблицы выделяется и перетаскивается с автозаполнением.
Однако, в случае если после 1 нажатия кнопки на листе "ввод" добавится позиция. То при повторном нажатии произойдет полный цикл - то есть к уже добавленным 4 строкам, добавиться еще 5, и данные задублируюся.
Идея проста. Сделать "зачистку" таблицы на листе "Вывод" до первой позиции. перед выполнением основного кода. Но вот как это сделать моих знаний тупо не хватит)))
Добрый день форумчане! Постараюсь описать всё как можно подробнее. заранее не могу оценить сложность вопроса, так как VBA для меня тёмный лес)) Не судите строго:
Есть файл расчета стоимости изделий. Основной расчет идёт на листе "ВВОД" там весь расчёт построен на функциях Excel. Прошу вас помочь с реализацией следующего функционала: - На листе "ВВОД" добавить кнопку, при клике на которую будет запускаться макрос: - На листе "Вывод" под 1 позицией, но над строкой "Итого" таблицы добавляется кол-во строк по кол-ву заполненных строк с листа "ВВОД" уменьшеное на 1 (так как 1 позиция уже есть) - и таблица заполняется значениями по формулам которые прописаны в 1 строчке - На листе "спецификация" задача полностью аналогична.
И еще. На странице "ВВОД" есть кнопка "построить маршрут с производства" - сделал её записью макроса - по сути его работа заключается в выделении ячейки A1 и перехода по ссылке которая записана в ячейку. ВОПРОС! Можно ли сделать так что бы кнопка напрямую ввела по заданной в самом макросе ссылке. что бы на листе не приходилось прятать эту ссылку.