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

Вход

Регистрация

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

 

= Мир MS Excel/Срабатывание макроса при изменении масштаба окна - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Срабатывание макроса при изменении масштаба окна
PakhomovNik Дата: Вторник, 08.04.2014, 16:02 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 40% ±

Excel 2007
Здравствуйте! Подскажите пожалуйста, как можно заставить крутится скрипт, постоянно?
Вобщем дело такое. Я написал скрипт при котором бы несколько столбцов, при изменении масштаба страницы, скрывались.
Но ни как не могу заставить его отрабатывать именно по изменению зума.
Скрипт такой:

[vba]
Код
Sub
If ActiveWindow.Zoom = 214 Then
Columns("E:H").Select
Selection.EntireColumn.Hidden = True
End if
End Sub
[/vba]

Какое действие сюда можно присобачить, чтобы он реагировал на зум?
[moder]Оформляйте коды тегами (кнопка #)[/moder]
 
Ответить
СообщениеЗдравствуйте! Подскажите пожалуйста, как можно заставить крутится скрипт, постоянно?
Вобщем дело такое. Я написал скрипт при котором бы несколько столбцов, при изменении масштаба страницы, скрывались.
Но ни как не могу заставить его отрабатывать именно по изменению зума.
Скрипт такой:

[vba]
Код
Sub
If ActiveWindow.Zoom = 214 Then
Columns("E:H").Select
Selection.EntireColumn.Hidden = True
End if
End Sub
[/vba]

Какое действие сюда можно присобачить, чтобы он реагировал на зум?
[moder]Оформляйте коды тегами (кнопка #)[/moder]

Автор - PakhomovNik
Дата добавления - 08.04.2014 в 16:02
Alex_ST Дата: Вторник, 08.04.2014, 17:01 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3237
Репутация: 631 ±
Замечаний: 0% ±

2003
Согласно Справке Window Object не имеет Events
Т.е. не вызывает программных событий.
Поэтому при изменении масштаба окна никаких оповещений об этом, которые можно было бы обработать и вызвать таким образом Ваш макрос скрытия/показа столбцов нельзя.
Надо придумать какой-нибудь "костыль".
Например, при кликах по ячейкам листа будут возникать события Worksheet_SelectionChange
Припишите вызов Вашего макроса с проверкой Зума к этому событию. Тогда у Вас при самом изменении масштаба ничего не изменится, но при первом же изменении активной ячейки произойдёт событие Worksheet_SelectionChange, по которому будут скрыты/показаны столбцы
В общем, что-то типа такого получится:
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     Columns("E:H").EntireColumn.Hidden = ActiveWindow.Zoom <= 214
End Sub
[/vba]

Но название топика - это ВООБЩЕ! При чём тут глобальные переменные? Поменяйте на что-то типа Срабатывание макроса при изменении масштаба окна. А то ай-яй-яй от модераторов получите.



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 08.04.2014, 17:12
 
Ответить
СообщениеСогласно Справке Window Object не имеет Events
Т.е. не вызывает программных событий.
Поэтому при изменении масштаба окна никаких оповещений об этом, которые можно было бы обработать и вызвать таким образом Ваш макрос скрытия/показа столбцов нельзя.
Надо придумать какой-нибудь "костыль".
Например, при кликах по ячейкам листа будут возникать события Worksheet_SelectionChange
Припишите вызов Вашего макроса с проверкой Зума к этому событию. Тогда у Вас при самом изменении масштаба ничего не изменится, но при первом же изменении активной ячейки произойдёт событие Worksheet_SelectionChange, по которому будут скрыты/показаны столбцы
В общем, что-то типа такого получится:
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     Columns("E:H").EntireColumn.Hidden = ActiveWindow.Zoom <= 214
End Sub
[/vba]

Но название топика - это ВООБЩЕ! При чём тут глобальные переменные? Поменяйте на что-то типа Срабатывание макроса при изменении масштаба окна. А то ай-яй-яй от модераторов получите.

Автор - Alex_ST
Дата добавления - 08.04.2014 в 17:01
PakhomovNik Дата: Вторник, 08.04.2014, 17:15 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 40% ±

Excel 2007
После добавления Worksheet_SelectionChange появляется вот это:

Compile Error:
Procedure declaration does nat match description of event or
procedure having the same name

Я так понимаю, что данное событие уже где-то используется. А как достучаться до уже написанных скриптов разработчиком?
 
Ответить
СообщениеПосле добавления Worksheet_SelectionChange появляется вот это:

Compile Error:
Procedure declaration does nat match description of event or
procedure having the same name

Я так понимаю, что данное событие уже где-то используется. А как достучаться до уже написанных скриптов разработчиком?

Автор - PakhomovNik
Дата добавления - 08.04.2014 в 17:15
Alex_ST Дата: Вторник, 08.04.2014, 17:18 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3237
Репутация: 631 ±
Замечаний: 0% ±

2003
Вы в какой модуль добавляете? Надеюсь, в модуль листа? Только в них есть события Worksheet_SelectionChange



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 08.04.2014, 17:21
 
Ответить
СообщениеВы в какой модуль добавляете? Надеюсь, в модуль листа? Только в них есть события Worksheet_SelectionChange

Автор - Alex_ST
Дата добавления - 08.04.2014 в 17:18
PakhomovNik Дата: Вторник, 08.04.2014, 17:19 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 40% ±

Excel 2007
Не-Не-Не, все норм. Спасибо большое за помощь.
А можно как-то привязать к событию часов?
Ну то есть по изменению секунд скрипт постоянно крутился бы.
 
Ответить
СообщениеНе-Не-Не, все норм. Спасибо большое за помощь.
А можно как-то привязать к событию часов?
Ну то есть по изменению секунд скрипт постоянно крутился бы.

Автор - PakhomovNik
Дата добавления - 08.04.2014 в 17:19
Alex_ST Дата: Вторник, 08.04.2014, 17:24 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3237
Репутация: 631 ±
Замечаний: 0% ±

2003
Николай, Вам мало 40% уровня замечаний?
Меняйте название топика, а то ещё накинут. И будут абсолютно правы.

События часов в смысле таймер? Это, конечно, можно, но с каким периодом Вы будете его вызывать чтобы не сильно тормозить Ёксель?
Да и выполнение макроса ЧАЩЕ ВСЕГО сбрасывает буфер обмена и к тому же делает невозможным UnDo.
Так что вряд ли Вам это понравится.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеНиколай, Вам мало 40% уровня замечаний?
Меняйте название топика, а то ещё накинут. И будут абсолютно правы.

События часов в смысле таймер? Это, конечно, можно, но с каким периодом Вы будете его вызывать чтобы не сильно тормозить Ёксель?
Да и выполнение макроса ЧАЩЕ ВСЕГО сбрасывает буфер обмена и к тому же делает невозможным UnDo.
Так что вряд ли Вам это понравится.

Автор - Alex_ST
Дата добавления - 08.04.2014 в 17:24
PakhomovNik Дата: Вторник, 08.04.2014, 17:27 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 40% ±

Excel 2007
Да я не знаю как изменить название...
 
Ответить
СообщениеДа я не знаю как изменить название...

Автор - PakhomovNik
Дата добавления - 08.04.2014 в 17:27
Alex_ST Дата: Вторник, 08.04.2014, 21:48 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3237
Репутация: 631 ±
Замечаний: 0% ±

2003
Зарегистрированный пользователь, создавший пост, может в течение суток после создания топика изменить его название.
Для этого нужно на старт-посте нажать "Правка".
В открывшейся форме будет возможность исправить название топика



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеЗарегистрированный пользователь, создавший пост, может в течение суток после создания топика изменить его название.
Для этого нужно на старт-посте нажать "Правка".
В открывшейся форме будет возможность исправить название топика

Автор - Alex_ST
Дата добавления - 08.04.2014 в 21:48
PakhomovNik Дата: Среда, 09.04.2014, 08:07 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 40% ±

Excel 2007
Спасибо за помощь! Вы мне очень помогли.
 
Ответить
СообщениеСпасибо за помощь! Вы мне очень помогли.

Автор - PakhomovNik
Дата добавления - 09.04.2014 в 08:07
PakhomovNik Дата: Среда, 09.04.2014, 08:23 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 40% ±

Excel 2007
А название, как Вы говорите "Топика" верное. Мне нужен был ответ на мой вопрос. Можно ли в Excel'e, в VB Добавить условие в глобальную переменную и существуют ли такие вообще. Для, так сказать, "автономной" работы условия. А еже ли нет, то вот как раз Ваша мысль мне и помогла. За это и +1 в репу!
 
Ответить
СообщениеА название, как Вы говорите "Топика" верное. Мне нужен был ответ на мой вопрос. Можно ли в Excel'e, в VB Добавить условие в глобальную переменную и существуют ли такие вообще. Для, так сказать, "автономной" работы условия. А еже ли нет, то вот как раз Ваша мысль мне и помогла. За это и +1 в репу!

Автор - PakhomovNik
Дата добавления - 09.04.2014 в 08:23
Alex_ST Дата: Среда, 09.04.2014, 08:31 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3237
Репутация: 631 ±
Замечаний: 0% ±

2003
А название, как Вы говорите "Топика" верное. Мне нужен был ответ на мой вопрос. Можно ли в Excel'e, в VB Добавить условие в глобальную переменную и существуют ли такие вообще.
Прочтите внимательно свой пост.
Здравствуйте! Подскажите пожалуйста, как можно заставить крутится скрипт, постоянно?
Вобщем дело такое. Я написал скрипт при котором бы несколько столбцов, при изменении масштаба страницы, скрывались.
Но ни как не могу заставить его отрабатывать именно по изменению зума.
…
Какое действие сюда можно присобачить, чтобы он реагировал на зум?

Здесь есть хоть один намёк на глобальные переменные?
И никакого отношения ни Ваш вопрос, ни мой ответ к глобальным переменным не имеют.
Ваш вопрос именно про обработку событий.



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Среда, 09.04.2014, 08:36
 
Ответить
Сообщение
А название, как Вы говорите "Топика" верное. Мне нужен был ответ на мой вопрос. Можно ли в Excel'e, в VB Добавить условие в глобальную переменную и существуют ли такие вообще.
Прочтите внимательно свой пост.
Здравствуйте! Подскажите пожалуйста, как можно заставить крутится скрипт, постоянно?
Вобщем дело такое. Я написал скрипт при котором бы несколько столбцов, при изменении масштаба страницы, скрывались.
Но ни как не могу заставить его отрабатывать именно по изменению зума.
…
Какое действие сюда можно присобачить, чтобы он реагировал на зум?

Здесь есть хоть один намёк на глобальные переменные?
И никакого отношения ни Ваш вопрос, ни мой ответ к глобальным переменным не имеют.
Ваш вопрос именно про обработку событий.

Автор - Alex_ST
Дата добавления - 09.04.2014 в 08:31
  • Страница 1 из 1
  • 1
Поиск:

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