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

Вход

Регистрация

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

 

= Мир MS Excel/Создание заявки на основании Прайса (Макрос) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Создание заявки на основании Прайса (Макрос) (Макросы/Sub)
Создание заявки на основании Прайса (Макрос)
Paladii Дата: Четверг, 30.06.2016, 17:14 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день!
Название темы говорит само за себя. В файле попытался максимально описать суть задачи. Возможно ли это реализовать? И хотелось бы увидеть само решение.
Спасибо!
[moder]Прочитайте п4 Правил форума.
Название этой темы подходит для 2-го вопроса. Чтобы не переименовывать, предлагаю создать новую тему для 1-го.[/moder]
К сообщению приложен файл: _Microsoft_Exce.xlsx (16.0 Kb)


Сообщение отредактировал Manyasha - Четверг, 30.06.2016, 18:06
 
Ответить
СообщениеДобрый день!
Название темы говорит само за себя. В файле попытался максимально описать суть задачи. Возможно ли это реализовать? И хотелось бы увидеть само решение.
Спасибо!
[moder]Прочитайте п4 Правил форума.
Название этой темы подходит для 2-го вопроса. Чтобы не переименовывать, предлагаю создать новую тему для 1-го.[/moder]

Автор - Paladii
Дата добавления - 30.06.2016 в 17:14
Paladii Дата: Пятница, 01.07.2016, 14:48 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Вижу один вопрос. В чем подвох?
 
Ответить
СообщениеВижу один вопрос. В чем подвох?

Автор - Paladii
Дата добавления - 01.07.2016 в 14:48
Udik Дата: Пятница, 01.07.2016, 15:37 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Зачем нужны флажки непонятно. Проще сразу проверять ячейки с количеством. Если в прайсе пара сотен наименований, упаришься чекбоксы вставлять :) .


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеЗачем нужны флажки непонятно. Проще сразу проверять ячейки с количеством. Если в прайсе пара сотен наименований, упаришься чекбоксы вставлять :) .

Автор - Udik
Дата добавления - 01.07.2016 в 15:37
Manyasha Дата: Пятница, 01.07.2016, 16:53 | Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
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
[/vba]
К сообщению приложен файл: _Microsoft_Exce.xlsm (23.7 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщение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
[/vba]

Автор - Manyasha
Дата добавления - 01.07.2016 в 16:53
Paladii Дата: Среда, 06.07.2016, 12:16 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Зачем нужны флажки непонятно. Проще сразу проверять ячейки с количеством. Если в прайсе пара сотен наименований, упаришься чекбоксы вставлять .

Уже разобрался с этим вопросом. Но вы скорей всего правы по поводу чекбоксов.

Manyasha,
Вам огромное спасибо!
 
Ответить
Сообщение
Зачем нужны флажки непонятно. Проще сразу проверять ячейки с количеством. Если в прайсе пара сотен наименований, упаришься чекбоксы вставлять .

Уже разобрался с этим вопросом. Но вы скорей всего правы по поводу чекбоксов.

Manyasha,
Вам огромное спасибо!

Автор - Paladii
Дата добавления - 06.07.2016 в 12:16
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Создание заявки на основании Прайса (Макрос) (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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