Страницы: 1
RSS
При работе с двумя и более открытыми книгами моргает лист
 
Добрый день форумчане! Окажите помощь!
Макрос вызывает моргание экрана не зависимо активна ли книга с ним или нет.
Пытался вставлять код отключения экрана но все равно.
Код
Private Sub Worksheet_Calculate()
If [AC3] > 0 Then ThisWorkbook.Sheets("Розходная").Visible = xlVeryHidden Else ThisWorkbook.Sheets("Розхидна").Visible = xlSheetVisible
End
Sub
putnik
 
попробуйте вставить
Код
Private Sub Worksheet_Calculate()
Application.ScreenUpdating=False
... (ваш код, который вы показали)
Application.ScreenUpdating=True
End sub
Изменено: JeyCi - 01.08.2016 19:43:27
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
В посте выше я писал, что пробовал, но без результатно. Я так понимаю, что проверка ячейки проходит из всех книг и если в нужной то срабатывает макрос вот это и вызывает моргание. Наверное нужно задать проверку ячейки именно  в книге с макросом.
putnik
 
Цитата
putnik написал:  из всех книг
каких всех? - и у вас
Цитата
ThisWorkbook
макрос писали для книги, в которой разместили его?.. зачем и как его запускаете при активных др. книгах?..
Цитата
putnik написал: не зависимо активна ли книга с ним или нет
конкретизируйте последовательность ваших действий с файлами и макросом
Изменено: JeyCi - 01.08.2016 20:00:09
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Макрос для конкретной книги. Но бывает необходимость открыть несколько разных книг, в том числе с этим макросом, и работать с ними по мере ввода данных. Так вот при внесении данных в лист другой книги и нажатию Энтер происходит моргание с появлением листа с макросом а потом восстанавливается лист с активной книги. Вот это и бесспокоит.
putnik
 
попробуйте If Me.[AC3] и т.д.... или Thisworkbook.[AC3]... и откл/вкл ScreenUodating я бы всё-таки тоже добавила
Изменено: JeyCi - 01.08.2016 20:29:58
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Спасибо. Сделал все, по Вашим рекомендациям, но моргание осталось. Правда занимает доли секунды, но и это успевает напрячь глаза. А у неподготовленного пользователя вызывает панику 8-0
putnik
 
извините, я не могу гадать на пальцах... вам лучше выложить файлы (их прототипы) с конкретной проблемой, чтобы показать в файле, а не обрывком макроса... возможно у вас там где-то есть какие-то Select. Activate, или есть формулы с сылками на др. книгу... если нет, то остаётся один вариант - причина: в пересчёте всех открытых книг? по событию Calculate - как данность самого XL... я не уверена... без файла больше предполагать не буду, что можно покрутить... но если хотите, чтобы кто-то поколдовал с вашей проблемой - лучше воспроизвести проблему в файле  
Изменено: JeyCi - 01.08.2016 20:46:02
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
putnik написал:
Так вот при внесении данных в лист другой книги и нажатию Энтер происходит моргание с появлением листа с макросом а потом восстанавливается лист с активной книги.
Это говорит лишь о том, что Ваш алгоритм абсолютно нежизнеспособен.  :D
 
Огромное спасибо за участие. С файлом пака проблема, позже попробую сделать упрощенный вариант. Но скорей всего Вы правы насчет "вариант - причина: в пересчёте всех открытых книг? по событию Calculate". Может сможете подсказать другой вариант макроса открытия листа по условию(формулой) в ячейке.
putnik
 
JeyCi или если можно отправить файл Вам на почту?
putnik
 
  НЕТ. Больше шансов, что поможет кто-нибудь, кто знает и у кого будет время уделить вашей проблеме,  Я не могу вас планировать в свой график, сейчас точно смотреть не буду... может и не смогу ничем помочь... не работала с событием на пересчёт ( Calculate)... если бы увидела и поняла с ходу, то подсказала бы... если нет - то многие здесь могут оказаться бОльшими профи, чем я... извините, но если вы не хотите воспроизводить проблему в примере, то я не хочу запрягаться в принципе ;) - поймите это надо вам, я за вас жить и решать ваши проблемы впредь не смогу (да и сейчас), могу лишь посоветовать, КАК решать свои проблемы САМОМУ... см. Правила Форума
Изменено: JeyCi - 01.08.2016 21:20:43
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Зачем в процессе работы макроса выполнять ввод в открываемых макросом файлах?
Сделайте независимый ввод в этих файлах.
Макросом откройте эти файлы, прочтите из них информацию.
Информацию можно сразу либо погрузить в массивы, либо скопировать ее на листы макросного файла, а потом погрузить в массивы.
После этого файлы закрыть.
И не будет никаких "морганий" и паники у пользователей.
 
JeyCi и Мотя еще раз Вам большое спасибо!
putnik
 
Как обратиться к диапазону из VBA
 
Цитата
putnik написал: подсказать другой вариант макроса открытия листа по условию(формулой) в ячейке.
спрашиваю без проверки...
1) а Private Sub Worksheet_Change(ByVal Target As Range) не подошёл??
2) в любом случае, если показание формулы меняется, значит где-то в яч, на которые она смотрит, произошли изменения... почему не написать Private Sub Worksheet_Change на ячейки-источники пересчёта?
Изменено: JeyCi - 02.08.2016 12:04:34
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Страницы: 1
Наверх