![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 08.05.2010
Сообщений: 48
|
![]()
Есть проблема: на листе 2 кнопки, запускающие 2 почти одинаковых макроса. Разница в том, что первая выводит на печать заданную область, а вторая нет. Оставшаяся часть макросов выполняет одинаковые функции. Можно-ли создать условие в одном макросе, по которому при нажатии на первую кнопку печать будет, а при нажатии на вторую - нет (чтобы удалить лишний макрос).
Вариант: MsgBox("Распечатать ?", Buttons:=3) не подходит, хотелось бы в одно нажатие. Посоветуйте, пожалуйста. |
![]() |
![]() |
![]() |
#2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
Допустим с печатью МАКРОС1.
В обьявлении макроса добавляем параметр ПЕЧАТАТЬ as boolean. С одной кнопки вызываем МАКРОС1 true, с другой МАКРОС1 false. в теле макроса фрагмент, который выводит на печать заключаем в такие скобки if ПЕЧАТАТЬ then ' фрагмент распечатывающий данные end if
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 616
|
![]()
Может быть, объявить булеву переменную на уровне модуля. Что-то вроде этого:
Dim Бул As Boolen Sub CommandButton1_Click() Бул = False Call ОсновнойМакрос End Sub Sub CommandButton2_Click() Бул = True Call ОсновнойМакрос End Sub А в основном макросе: ... If Бул=False Then печатаем Else не печатаем End If ... |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 616
|
![]()
Упс, опоздал на минуту.
|
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 08.05.2010
Сообщений: 48
|
![]() Цитата:
Код:
Просто принтера сейчас нет, проверить не могу. Без печати работает. Последний раз редактировалось ELE-COM; 18.05.2010 в 21:05. |
|
![]() |
![]() |
![]() |
#6 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
Правильно.
Макрос был обьявлен Sub МАКРОС1() а теперь надо Sub МАКРОС1(ПЕЧАТЬ as boolean) и в теле макроса две строки добавить (описано уже выше как)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 08.05.2010
Сообщений: 48
|
![]() |
![]() |
![]() |
![]() |
#8 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
ELE-COM,
проверить сейчас можно так: закомментировать все что должно было печатать поставить одну строку MsgBox "Тут должно было распечатываться..." Не забыть потом все вернуть к правильному состоянию nilem, очень понравилось это: If Бул=False Then печатаем Else не печатаем End If Строго как в анекдоте о программисте. Ложится программист спать возле кровати ставит стакан с водой и пустой стакан. На вопрос: - Зачем? - А вдруг пить ночью захочу! - А пустой??? - А вдруг не захочу!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 08.05.2010
Сообщений: 48
|
![]() Код:
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 616
|
![]()
Да, не профессионал. Но подход-то верный!
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Условие в макросе на цвет заливки ячеек | Chelentano | Microsoft Office Excel | 2 | 03.08.2009 23:44 |
Что неверно в макросе? | Иванов_ДМ | Microsoft Office Excel | 11 | 22.05.2009 21:57 |
Функции в макросе. | Rom1k06 | Microsoft Office Excel | 7 | 19.10.2008 11:22 |
Константы в Макросе | valerij | Microsoft Office Excel | 2 | 03.02.2008 23:33 |
триггерные кнопки и кнопки переключатели в DELPHI | MARGO | Помощь студентам | 3 | 12.11.2007 17:35 |