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

Вход

Регистрация

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

 

= Мир MS Excel/генерация нескольких отчетов одной кнопкой - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по Excel » генерация нескольких отчетов одной кнопкой (Иное/Other)
генерация нескольких отчетов одной кнопкой
Virus Дата: Понедельник, 27.11.2017, 13:18 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброго всем времени суток. Нужна помощь с созданием кнопки или редактирования выпадающего списка.
Есть шаблон который автоматически заполняется данными по мере выбора товара. Столкнулся с проблемой не возможности пустить в печать одновременно отчеты по каждому товару. Подскажите пожалуйста как можно решить мою проблему?
К сообщению приложен файл: 4146927.xlsx(13Kb)
 
Ответить
СообщениеДоброго всем времени суток. Нужна помощь с созданием кнопки или редактирования выпадающего списка.
Есть шаблон который автоматически заполняется данными по мере выбора товара. Столкнулся с проблемой не возможности пустить в печать одновременно отчеты по каждому товару. Подскажите пожалуйста как можно решить мою проблему?

Автор - Virus
Дата добавления - 27.11.2017 в 13:18
bmv98rus Дата: Понедельник, 27.11.2017, 14:21 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 686
Репутация: 114 ±
Замечаний: 0% ±

Excel 2013/2016
[vba]
Код
Sub PrintRepforAll()
Set sh1 = Worksheets("БД")
Set sh2 = Worksheets("Шаблон")
    For Each objCell In sh1.Range(sh1.Cells(2, 1), sh1.Cells(sh1.Rows.Count, 1).End(xlUp))
        sh2.Range("G7").Value = objCell.Value
        sh2.PrintOut Copies:=1, IgnorePrintAreas:=False
    Next
End Sub
[/vba]

вот только уникальность тут ровно такая, как и в вашем выпадающем списке. то есть выйдет 18 отчетов, а не 6.


Сообщение отредактировал bmv98rus - Понедельник, 27.11.2017, 14:24
 
Ответить
Сообщение[vba]
Код
Sub PrintRepforAll()
Set sh1 = Worksheets("БД")
Set sh2 = Worksheets("Шаблон")
    For Each objCell In sh1.Range(sh1.Cells(2, 1), sh1.Cells(sh1.Rows.Count, 1).End(xlUp))
        sh2.Range("G7").Value = objCell.Value
        sh2.PrintOut Copies:=1, IgnorePrintAreas:=False
    Next
End Sub
[/vba]

вот только уникальность тут ровно такая, как и в вашем выпадающем списке. то есть выйдет 18 отчетов, а не 6.

Автор - bmv98rus
Дата добавления - 27.11.2017 в 14:21
vikttur Дата: Понедельник, 27.11.2017, 14:36 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 2557
Репутация: 460 ±
Замечаний: 0% ±

bmv98rus, я писал бы так:
[vba]
Код
Sub PrintRepforAll()
Dim sh1 As Worksheet
Dim rRng As Range, objCell
    With Worksheets("БД")
        Set rRng = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
    End With

    With Worksheets("Шаблон")
        For Each objCell In rRng
            .Range("G7").Value = objCell.Value
            .PrintOut Copies:=1, IgnorePrintAreas:=False
        Next objCell
    End With
    
    Set rRng = Nothing
End Sub
[/vba]
Кушаем меньше памяти, в конце освобождаем занятый кусок.


Сообщение отредактировал vikttur - Понедельник, 27.11.2017, 14:39
 
Ответить
Сообщениеbmv98rus, я писал бы так:
[vba]
Код
Sub PrintRepforAll()
Dim sh1 As Worksheet
Dim rRng As Range, objCell
    With Worksheets("БД")
        Set rRng = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
    End With

    With Worksheets("Шаблон")
        For Each objCell In rRng
            .Range("G7").Value = objCell.Value
            .PrintOut Copies:=1, IgnorePrintAreas:=False
        Next objCell
    End With
    
    Set rRng = Nothing
End Sub
[/vba]
Кушаем меньше памяти, в конце освобождаем занятый кусок.

Автор - vikttur
Дата добавления - 27.11.2017 в 14:36
_Boroda_ Дата: Понедельник, 27.11.2017, 15:15 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11852
Репутация: 4911 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А у меня такой вариант. Печатает уникальные значения
[vba]
Код
Sub tt()
    With Sheets("БД")
        n_ = .Range("A" & .Rows.Count).End(3).Row - 1
        If n_ < 2 Then Exit Sub
        ar = .Range("A2").Resize(n_)
        Set slov = CreateObject("Scripting.Dictionary")
        With Sheets("Шаблон")
            For i = 2 To n_
                If Not slov.Exists(ar(i, 1)) Then
                    aaa = slov.Item(ar(i, 1))
                    .Range("G7") = ar(i, 1)
'                    DoEvents' возможно понадобится
                    .PrintOut Copies:=1, IgnorePrintAreas:=False
                End If
            Next i
        End With
    End With
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА у меня такой вариант. Печатает уникальные значения
[vba]
Код
Sub tt()
    With Sheets("БД")
        n_ = .Range("A" & .Rows.Count).End(3).Row - 1
        If n_ < 2 Then Exit Sub
        ar = .Range("A2").Resize(n_)
        Set slov = CreateObject("Scripting.Dictionary")
        With Sheets("Шаблон")
            For i = 2 To n_
                If Not slov.Exists(ar(i, 1)) Then
                    aaa = slov.Item(ar(i, 1))
                    .Range("G7") = ar(i, 1)
'                    DoEvents' возможно понадобится
                    .PrintOut Copies:=1, IgnorePrintAreas:=False
                End If
            Next i
        End With
    End With
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 27.11.2017 в 15:15
bmv98rus Дата: Понедельник, 27.11.2017, 15:28 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 686
Репутация: 114 ±
Замечаний: 0% ±

Excel 2013/2016
[offtop] vikttur,
К несчастью тут нет смайла, коим можно выразить глубочайшее почтение, к ряду участников планетарного и мирового форумов кроме как так respect pray . И это я на полном серьезе.
Для продуктива - беспорно надо так, да и ваще все объекты очищать правильно. Я правда не помню чтоб была разница между использованием With и предопределенным объектом и совсем не понял зачем первый with для одного set. Разве что так более универсально.[/offtop]


Сообщение отредактировал bmv98rus - Понедельник, 27.11.2017, 16:04
 
Ответить
Сообщение[offtop] vikttur,
К несчастью тут нет смайла, коим можно выразить глубочайшее почтение, к ряду участников планетарного и мирового форумов кроме как так respect pray . И это я на полном серьезе.
Для продуктива - беспорно надо так, да и ваще все объекты очищать правильно. Я правда не помню чтоб была разница между использованием With и предопределенным объектом и совсем не понял зачем первый with для одного set. Разве что так более универсально.[/offtop]

Автор - bmv98rus
Дата добавления - 27.11.2017 в 15:28
Virus Дата: Понедельник, 27.11.2017, 15:42 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, Здорово, подскажите пожалуйста отчет о печати в виде документа является обязательным параметром или можно не сохраняя просто нажать на кнопку и он пустит все экземпляры в печать?
 
Ответить
Сообщение_Boroda_, Здорово, подскажите пожалуйста отчет о печати в виде документа является обязательным параметром или можно не сохраняя просто нажать на кнопку и он пустит все экземпляры в печать?

Автор - Virus
Дата добавления - 27.11.2017 в 15:42
Virus Дата: Понедельник, 27.11.2017, 15:46 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Всем огромное спасибо за помощь еще только новичку в данном программном продукте ^_^ ^_^ ^_^ yes yes yes
 
Ответить
СообщениеВсем огромное спасибо за помощь еще только новичку в данном программном продукте ^_^ ^_^ ^_^ yes yes yes

Автор - Virus
Дата добавления - 27.11.2017 в 15:46
vikttur Дата: Понедельник, 27.11.2017, 15:46 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 2557
Репутация: 460 ±
Замечаний: 0% ±

Цитата
зачем первый with для одного set

Там три четыре обращения к листу. With позволяет создать переменную (объект) на лету и сразу ее уничтожить после выхода End With (освобождаем память). а в rRng остается намного меньший объект - небольшая часть листа.


Сообщение отредактировал vikttur - Понедельник, 27.11.2017, 16:02
 
Ответить
Сообщение
Цитата
зачем первый with для одного set

Там три четыре обращения к листу. With позволяет создать переменную (объект) на лету и сразу ее уничтожить после выхода End With (освобождаем память). а в rRng остается намного меньший объект - небольшая часть листа.

Автор - vikttur
Дата добавления - 27.11.2017 в 15:46
_Boroda_ Дата: Понедельник, 27.11.2017, 15:49 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11852
Репутация: 4911 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Virus, Не понял вопроса
bmv98rus,
зачем первый with для одного set
В этом одном Сете прописано аж 4 обращения к листу "БД". Вот затем и With, чтобы 4 раза не писать и, что гораздо важнее, чтобы 4 раза не обращаться к объекту


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеVirus, Не понял вопроса
bmv98rus,
зачем первый with для одного set
В этом одном Сете прописано аж 4 обращения к листу "БД". Вот затем и With, чтобы 4 раза не писать и, что гораздо важнее, чтобы 4 раза не обращаться к объекту

Автор - _Boroda_
Дата добавления - 27.11.2017 в 15:49
bmv98rus Дата: Понедельник, 27.11.2017, 16:02 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 686
Репутация: 114 ±
Замечаний: 0% ±

Excel 2013/2016
[offtop] vikttur, _Boroda_, Спасибо, а мне все ж пора за очками. Куда смотрел. А то в свой почти полтинник, как студент "Ведь знал, ведь знал .... ".[/offtop]


Сообщение отредактировал bmv98rus - Понедельник, 27.11.2017, 16:03
 
Ответить
Сообщение[offtop] vikttur, _Boroda_, Спасибо, а мне все ж пора за очками. Куда смотрел. А то в свой почти полтинник, как студент "Ведь знал, ведь знал .... ".[/offtop]

Автор - bmv98rus
Дата добавления - 27.11.2017 в 16:02
Мир MS Excel » Вопросы и решения » Вопросы по Excel » генерация нескольких отчетов одной кнопкой (Иное/Other)
Страница 1 из 11
Поиск:

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