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

Вход

Регистрация

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

 

= Мир MS Excel/Изменяется область печати из за макроса - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменяется область печати из за макроса (Макросы/Sub)
Изменяется область печати из за макроса
heaven33rus Дата: Среда, 13.06.2018, 15:28 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 75
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Приветствую всех.
Особенно _Boroda_ т.к. в свое время Вы мне помогли с одной таблицей (надо было скрыть имена) в которой и был реализован данный макрос :)
за что еще раз больше спасибо.

И вроде все хорошо работает, но я никак не мог понять, почему у меня в конечном итоге менялась область печати.
Путем постепенного отсеивания выяснил, что после проигрывания вот этого макроса, область печати меняется с заданной мной на максимальную (там где введены какие-либо данные)

[vba]
Код

Private Sub SkrImen()
    For Each n_ In Me.Names
        n_.Visible = False
    Next n_
End Sub
[/vba]

Можно как-то это дело доработать или вставить еще какой кусок кода,
чтоб область печати при любом раскладе была A20:D50 к примеру?
 
Ответить
СообщениеПриветствую всех.
Особенно _Boroda_ т.к. в свое время Вы мне помогли с одной таблицей (надо было скрыть имена) в которой и был реализован данный макрос :)
за что еще раз больше спасибо.

И вроде все хорошо работает, но я никак не мог понять, почему у меня в конечном итоге менялась область печати.
Путем постепенного отсеивания выяснил, что после проигрывания вот этого макроса, область печати меняется с заданной мной на максимальную (там где введены какие-либо данные)

[vba]
Код

Private Sub SkrImen()
    For Each n_ In Me.Names
        n_.Visible = False
    Next n_
End Sub
[/vba]

Можно как-то это дело доработать или вставить еще какой кусок кода,
чтоб область печати при любом раскладе была A20:D50 к примеру?

Автор - heaven33rus
Дата добавления - 13.06.2018 в 15:28
_Boroda_ Дата: Среда, 13.06.2018, 15:45 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12744
Репутация: 5226 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Области печати - это тоже имена. Задайте в книге ОП и посмотрите Контрл F3
Попробуйте так
[vba]
Код
Private Sub SkrImen()
    For Each n_ In Me.Names
if n_.name<>"Область_печати" then
        n_.Visible = False
    Next n_
enf if
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеОбласти печати - это тоже имена. Задайте в книге ОП и посмотрите Контрл F3
Попробуйте так
[vba]
Код
Private Sub SkrImen()
    For Each n_ In Me.Names
if n_.name<>"Область_печати" then
        n_.Visible = False
    Next n_
enf if
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 13.06.2018 в 15:45
heaven33rus Дата: Среда, 13.06.2018, 20:00 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 75
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Макрос ругается:
Compile error.
Next without For
:((
 
Ответить
СообщениеМакрос ругается:
Compile error.
Next without For
:((

Автор - heaven33rus
Дата добавления - 13.06.2018 в 20:00
Pelena Дата: Среда, 13.06.2018, 20:24 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12905
Репутация: 2843 ±
Замечаний: 0% ±

Excel 2010, 2016 & Mac Excel
Поменяйте местами строки [vba]
Код
End If
[/vba] и [vba]
Код
Next n_
[/vba]


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеПоменяйте местами строки [vba]
Код
End If
[/vba] и [vba]
Код
Next n_
[/vba]

Автор - Pelena
Дата добавления - 13.06.2018 в 20:24
_Boroda_ Дата: Среда, 13.06.2018, 20:42 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12744
Репутация: 5226 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Ну да, это ж я писал не в VBA, а прямо на форуме. Да еще начальство над душой как всегда
Еще и вместо End написал enf
Короче, вот так должно быть
[vba]
Код
Private Sub SkrImen()
    For Each n_ In Me.Names
        If n_.Name <> "Область_печати" Then
            n_.Visible = False
        End If
    Next n_
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеНу да, это ж я писал не в VBA, а прямо на форуме. Да еще начальство над душой как всегда
Еще и вместо End написал enf
Короче, вот так должно быть
[vba]
Код
Private Sub SkrImen()
    For Each n_ In Me.Names
        If n_.Name <> "Область_печати" Then
            n_.Visible = False
        End If
    Next n_
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 13.06.2018 в 20:42
heaven33rus Дата: Четверг, 14.06.2018, 09:35 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 75
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Не помогло.
Область печати нормальная A20:D60, пока не скрываются имена.
Область печати становится A1:AV104 - эта область содержащая какие-либо данные в моем случае ячейки закрашены.
Если потом запустить макрос "показать имена" все становится на свои места.
В диспетчере имен, имени Область_печати указан диапазон A20:D60

Может еще можно куда посмотреть? что за магия...


Сообщение отредактировал heaven33rus - Четверг, 14.06.2018, 09:36
 
Ответить
СообщениеНе помогло.
Область печати нормальная A20:D60, пока не скрываются имена.
Область печати становится A1:AV104 - эта область содержащая какие-либо данные в моем случае ячейки закрашены.
Если потом запустить макрос "показать имена" все становится на свои места.
В диспетчере имен, имени Область_печати указан диапазон A20:D60

Может еще можно куда посмотреть? что за магия...

Автор - heaven33rus
Дата добавления - 14.06.2018 в 09:35
_Boroda_ Дата: Четверг, 14.06.2018, 09:41 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12744
Репутация: 5226 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А может уже пора файл нам дать? Данные в нем не нужны, нужны имена. Ну и немного данных


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА может уже пора файл нам дать? Данные в нем не нужны, нужны имена. Ну и немного данных

Автор - _Boroda_
Дата добавления - 14.06.2018 в 09:41
heaven33rus Дата: Четверг, 14.06.2018, 11:44 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 75
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Упихнул в 100 кб. Сам файл теперь ничего считать не может, но это сейчас не главное.
Забыл сказать, что область печати меняется для случаев, когда печатаешь через ctrl+p, если печатать через кнопку внизу таблицы (макрос), то все естественно печатается хорошо.
К сообщению приложен файл: v.3.0.6-4.xlsm(85.1 Kb)
 
Ответить
СообщениеУпихнул в 100 кб. Сам файл теперь ничего считать не может, но это сейчас не главное.
Забыл сказать, что область печати меняется для случаев, когда печатаешь через ctrl+p, если печатать через кнопку внизу таблицы (макрос), то все естественно печатается хорошо.

Автор - heaven33rus
Дата добавления - 14.06.2018 в 11:44
RAN Дата: Четверг, 14.06.2018, 11:51 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4817
Репутация: 968 ±
Замечаний: 0% ±

2010
Вставьте в модуль книги
[vba]
Код
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    print_page
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеВставьте в модуль книги
[vba]
Код
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    print_page
End Sub
[/vba]

Автор - RAN
Дата добавления - 14.06.2018 в 11:51
heaven33rus Дата: Четверг, 14.06.2018, 12:12 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 75
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Вставьте в модуль книги

Вставил в 1 модуль, в конце.
На ситуацию никак не влияет. При скрытых именах, нажимая ctrl+p область печати огромная.
 
Ответить
Сообщение
Вставьте в модуль книги

Вставил в 1 модуль, в конце.
На ситуацию никак не влияет. При скрытых именах, нажимая ctrl+p область печати огромная.

Автор - heaven33rus
Дата добавления - 14.06.2018 в 12:12
_Boroda_ Дата: Четверг, 14.06.2018, 13:06 | Сообщение № 11
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12744
Репутация: 5226 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
heaven33rus, вот так нужно
[vba]
Код
Private Sub SkrImen()
    For Each n_ In Me.Names
    û = n_.Name
        If Right(n_.Name, 10) <> "Print_Area" Then
            n_.Visible = False
        End If
    Next n_
End Sub
[/vba]
К сообщению приложен файл: v.3.0.6-4_1.xlsm(85.2 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщениеheaven33rus, вот так нужно
[vba]
Код
Private Sub SkrImen()
    For Each n_ In Me.Names
    û = n_.Name
        If Right(n_.Name, 10) <> "Print_Area" Then
            n_.Visible = False
        End If
    Next n_
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 14.06.2018 в 13:06
heaven33rus Дата: Четверг, 14.06.2018, 15:10 | Сообщение № 12
Группа: Пользователи
Ранг: Участник
Сообщений: 75
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
вот так нужно


Да, да, да!!!
Работает.
Не спряталось одно имя (Область_печати), ну да и ладно, видимо так надо... тут никто уже ничего не нахимичит.
Спасибо большое!!!
 
Ответить
Сообщение
вот так нужно


Да, да, да!!!
Работает.
Не спряталось одно имя (Область_печати), ну да и ладно, видимо так надо... тут никто уже ничего не нахимичит.
Спасибо большое!!!

Автор - heaven33rus
Дата добавления - 14.06.2018 в 15:10
_Boroda_ Дата: Четверг, 14.06.2018, 15:25 | Сообщение № 13
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12744
Репутация: 5226 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Конечно не спряталось. Внимательно читайте второй пост
Области печати - это тоже имена.

Или оно есть, тогда будет область печати, или его нет, тогда не будет. Есть, конечно, вариант показывать его только перед самой печатью и после сразу же скрывать, но зачем?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеКонечно не спряталось. Внимательно читайте второй пост
Области печати - это тоже имена.

Или оно есть, тогда будет область печати, или его нет, тогда не будет. Есть, конечно, вариант показывать его только перед самой печатью и после сразу же скрывать, но зачем?

Автор - _Boroda_
Дата добавления - 14.06.2018 в 15:25
heaven33rus Дата: Четверг, 14.06.2018, 15:47 | Сообщение № 14
Группа: Пользователи
Ранг: Участник
Сообщений: 75
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Да конечно не зачем, и так получилось круто!!!
 
Ответить
СообщениеДа конечно не зачем, и так получилось круто!!!

Автор - heaven33rus
Дата добавления - 14.06.2018 в 15:47
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменяется область печати из за макроса (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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