Страницы: 1
RSS
Слетает работа некоторых макросов
 
Ребята, прошу помощи. Не особо дружу с VBA, но с помощью интернета написала необходимые макросы.

Они все работают, но в определенный момент они сбиваются и либо какой-то из макросов перестаёт работать, либо не работают все. До того, как добавила макрос блокировки ячеек такой проблемы не было (по крайней мере не замечала).

Думаю, может макросы оформляются как-то по отдельности, я же оформила все макросы через End If.
В основном, все макросы по типу: "Если C7 ИП, то скрыть строки 90 - 103".
Пожалуйста, пожалуйста, помогите мне  :cry:

P.S. Блокировка ячеек второй код.
P.S.S. Может каждый макрос нужно отдельно новым прописывать для нормальной работы? И как тогда и называть? Нужно, чтобы они срабатывали автоматически.  
Изменено: Melancholia - 15.12.2018 17:58:01
 
Melancholia, здравствуйте! Вы лучше расскажите, что Вам нужно, а не то, как Вы этого пытаетесь достичь  :)  Ну уж очень много строк в Вашем коде, много времени понадобится, что бы в них разбираться  :)  
 
_Igor_61, добрый вечер) Они в целом то работают все, но сбиваются те, что в конце, если я их перетаскиваю наверх, то они срабатывают, а те что смещаются вниз перестают работать. я вот думаю может как-то их между собой отделить, как-то дать название, а как не знаю, делаю что могу(
Такое стало происходить после добавление кода блокировки ячеек

Мой код блокировки выглядит так:(он блокирует редактирование в ячейках, то есть то, что указано в столбце С не цветным цветом удалить невозможно)
Код
If Not Intersect(Target, Range("C8,C9,C13,C18:C20,C24,C29,C30,C31,C35,C40,C41,C42,C46,C51:C53,C57,C62:C65,C67")) Is Nothing Then
With Application: .EnableEvents = 0: .Undo: .EnableEvents = -1:
End With
End If
If Not Intersect(Target, Range("C75,C79,C81:C87,C92,C105,C108,C115,C120,C129,C138,C139:C142,C145,C150,C155,C157,C158")) Is Nothing Then
With Application: .EnableEvents = 0: .Undo: .EnableEvents = -1:
End With
End If
If Not Intersect(Target, Range("C161,C170,C183,C185:C191,C193,C194,C195,C197:C199,C201:C203,C205:C208,C210:C212,C214:C216")) Is Nothing Then
With Application: .EnableEvents = 0: .Undo: .EnableEvents = -1:
End With
End If
If Not Intersect(Target, Range("C218:C220,C222:C224,C226:C228,C230:C233,C235:C237,C239,C240,C241,C243,C244,C245,C247,C248,C249,C251:C253,C255:C258,C260:C262,C264:C266,C268:C270,C272,C273,C274,C276:C278,C280:C283,C285:C287,C289:C291,C293:C295,C297:C299,C301:C303,C305:C308")) Is Nothing Then
With Application: .EnableEvents = 0: .Undo: .EnableEvents = -1:
End With
End If
Изменено: Melancholia - 15.12.2018 19:04:36
 
Не, просматривать все эти четыре условия и большое кол-во перечисленных Range и тем более их работу на листе сейчас не смогу по причине изрядного кол-ва принятого пива:) Возможно, то место, где собака порылась, Вы уже нашли, нужно только еще чуть копнуть:
Цитата
Melancholia написал:
До того, как добавила макрос блокировки ячеек такой проблемы не было (по крайней мере не замечала)
Ну и еще (предупреждаю: я не профи в программировании, это чисто мое ИМХО): если нет острой нужды в присутствии  кода в модуле листа, пусть лучше макросы живут в своих модулях, а из модуля листа их просто время от времени звать, когда они понадобятся. А может, и сам файл поломался за два года, или офис или систему переустановить пора - тоже может быть, если макросы работали и вдруг перестали...
 
кросс (и не единственный) http://www.cyberforum.ru/vba/thread2373067.html
 
По ссылке Евгений - "написал необходимые макросы", у нас, вроде, дама - "написала необходимые макросы" ))
Ну надо же: люди разные, а задача одна!
Melancholia,  размещаете темы на нескольких форумах - ИНФОРМИРУЙТЕ об этом прямыми ссылками.
Страницы: 1
Наверх