Добрый день! Название темы говорит само за себя. В файле попытался максимально описать суть задачи. Возможно ли это реализовать? И хотелось бы увидеть само решение. Спасибо! [moder]Прочитайте п4 Правил форума. Название этой темы подходит для 2-го вопроса. Чтобы не переименовывать, предлагаю создать новую тему для 1-го.[/moder]
Добрый день! Название темы говорит само за себя. В файле попытался максимально описать суть задачи. Возможно ли это реализовать? И хотелось бы увидеть само решение. Спасибо! [moder]Прочитайте п4 Правил форума. Название этой темы подходит для 2-го вопроса. Чтобы не переименовывать, предлагаю создать новую тему для 1-го.[/moder]Paladii
1)При установке галочки напротив товарной позиции появлялось диалоговое окно с просьбой "указать количество" (Где присутствует строка, куда вводиться количество. Также кнопки "ОК" и "Пропустить". При нажатии кнопки "Пропустить" диалоговое окно закрывается и галочка снимается. При нажатии кнопки "ОК" количество прописывается в столбце "Количество" напротив выбранной позиции. 2) После выбора всех необходимых позиций и указания количества нажимаем кнопку создать заявку. Создается новая книга в которой формируется таблица (см. Лист2)
Это 2 разные задачи.
Вот макрос для создании заявки: [vba]
Код
Sub Заявка() Dim lr&, i&, n&, sh As Worksheet, rep As Workbook Set sh = ThisWorkbook.Sheets(1) lr = Cells(Rows.Count, 2).End(xlUp).Row Set rep = Workbooks.Add(1) n = 2 With rep.Sheets(1) .Cells(1, 1) = "Наименование" .Cells(1, 2) = "Количество" .Cells(1, 3) = "Цена" .Cells(1, 4) = "Сумма" For i = 4 To lr If sh.Cells(i, "i") <> 0 Then .Cells(n, 1) = sh.Cells(i, "b") .Cells(n, 2) = sh.Cells(i, "i") .Cells(n, 3) = sh.Cells(i, "c") .Cells(n, 4) = .Cells(n, 2) * .Cells(n, 3) n = n + 1 End If Next i .Cells(n, 1) = "Итого:" .Cells(n, 2) = WorksheetFunction.Sum(.Cells(2, 2).Resize(n - 1)) .Cells(n, 3) = WorksheetFunction.Sum(.Cells(2, 3).Resize(n - 1)) .Cells(n, 4) = .Cells(n, 2) * .Cells(n, 3) With .Cells(1, 1).Resize(n, 4) .Borders(7).LineStyle = xlContinuous .Borders(8).LineStyle = xlContinuous .Borders(9).LineStyle = xlContinuous .Borders(10).LineStyle = xlContinuous .Borders(11).LineStyle = xlContinuous .Borders(12).LineStyle = xlContinuous End With End With End Sub
1)При установке галочки напротив товарной позиции появлялось диалоговое окно с просьбой "указать количество" (Где присутствует строка, куда вводиться количество. Также кнопки "ОК" и "Пропустить". При нажатии кнопки "Пропустить" диалоговое окно закрывается и галочка снимается. При нажатии кнопки "ОК" количество прописывается в столбце "Количество" напротив выбранной позиции. 2) После выбора всех необходимых позиций и указания количества нажимаем кнопку создать заявку. Создается новая книга в которой формируется таблица (см. Лист2)
Это 2 разные задачи.
Вот макрос для создании заявки: [vba]
Код
Sub Заявка() Dim lr&, i&, n&, sh As Worksheet, rep As Workbook Set sh = ThisWorkbook.Sheets(1) lr = Cells(Rows.Count, 2).End(xlUp).Row Set rep = Workbooks.Add(1) n = 2 With rep.Sheets(1) .Cells(1, 1) = "Наименование" .Cells(1, 2) = "Количество" .Cells(1, 3) = "Цена" .Cells(1, 4) = "Сумма" For i = 4 To lr If sh.Cells(i, "i") <> 0 Then .Cells(n, 1) = sh.Cells(i, "b") .Cells(n, 2) = sh.Cells(i, "i") .Cells(n, 3) = sh.Cells(i, "c") .Cells(n, 4) = .Cells(n, 2) * .Cells(n, 3) n = n + 1 End If Next i .Cells(n, 1) = "Итого:" .Cells(n, 2) = WorksheetFunction.Sum(.Cells(2, 2).Resize(n - 1)) .Cells(n, 3) = WorksheetFunction.Sum(.Cells(2, 3).Resize(n - 1)) .Cells(n, 4) = .Cells(n, 2) * .Cells(n, 3) With .Cells(1, 1).Resize(n, 4) .Borders(7).LineStyle = xlContinuous .Borders(8).LineStyle = xlContinuous .Borders(9).LineStyle = xlContinuous .Borders(10).LineStyle = xlContinuous .Borders(11).LineStyle = xlContinuous .Borders(12).LineStyle = xlContinuous End With End With End Sub