Страницы: 1
RSS
После работы макроса пропали значки выпадающих списков., как восстановить?
 
Есть два макроса, которые последовательно (вручную) запускаются в одной книге.

macros1 - общая и основная настройка листа
macros2 - удаление и назначение именованных диапозонов и выпадающих списков

Если запустить macros2 - всё ОК.
Если запустить macros1 и потом macros2, то macros2 не вносит изменений.

Нашёл часть кода, после которой запуск macros2 не даёт результата.
Удаление Shapes на листе. По факту удаляются только Shapes Линии.
Код
Dim MyShape As Shape
For Each MyShape In ActiveWorkbook.Worksheets("ppr").Shapes
   MyShape.Delete
Next


Почему этот код не позволяет работать этому коду:

Скрытый текст


К множеству иных файлов уже был применён макрос1, а значит во всех этих файлах НЕВОЗМОЖНО применить макрос2!!!
Как сделать эти "испорченные" файлы/книги редактируемыми макросом2 снова???
Изменено: jack_21 - 31.03.2018 14:47:26
 
Цитата
jack_21 написал: Нашёл часть кода, после которой запуск macros2 не даёт результата
Как Вы решили, что именно эта часть кода первого макроса влияет на работу второго? Покажите весь код первого макроса, а лучше файл-пример приложите (в формате Excel)
Согласие есть продукт при полном непротивлении сторон
 
Выполнением кода по этапам и запуском macros2 после каждого этапа.
в зелёных ячейках на листе PPR должен назначатся выпадающий список макросом m2.NamesDropsX
Изменено: jack_21 - 31.03.2018 14:26:18
 
К множеству иных файлов уже был применён макрос1, а значит во всех этих файлах НЕВОЗМОЖНО применить макрос2!!!
Как сделать эти "испорченные" файлы/книги редактируемыми макросом2 снова???
Изменено: jack_21 - 31.03.2018 14:42:38
 
Цитата
jack_21 написал: По факту удаляются только Shapes Линии
Нет. По факту удаляются ВСЕ шейпы, в т.ч. и треугольники выпадающих списков. Эту часть кода лучше записать так (именно только для линий)
Код
'DELETEshapesADDlines ------------------------------------------------------------------------------------------
Dim MyShape As Shape
For Each MyShape In ActiveWorkbook.Worksheets("ppr").Shapes
    If MyShape.Type = msoLine Then MyShape.Delete
Next
А вот как восстановить эти треугольники надо подумать. Сама проверка данных там есть
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал:
А вот как восстановить эти треугольники надо подумать
Вариант: проверку данных удалить (программно) и вставить заново )
 
Цитата
Sanja написал: По факту удаляются ВСЕ шейпы
я имел ввиду, что по факту там тольео Lines.
Нашёл вот такое решение: - почти такое же как у Sanja:
Скрытый текст


Остаётся вопрос - КАК вернуть состояние в уже "испорченных" книгах?  :(
Что такое изменил этот код, что не позволяет создать DropDownList?
Изменено: jack_21 - 31.03.2018 15:31:30
 
Юрий М, там этот макрос так и делает. Бесполезно. Ни вручную ни программно  
Согласие есть продукт при полном непротивлении сторон
 
jack_21, сохранил файл в новом формате (.xlsm) - закрыл - открыл - стрелочки появились
Согласие есть продукт при полном непротивлении сторон
 
Нашёл такое:
CTRL+6 => Alternates between hiding and displaying objects.

На "испорченном" файле не сработало. :( На "здоровом" работает - скрывает/показывает.
 
См. сообщение #9
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал:
сохранил файл в новом формате (.xlsm) - закрыл - открыл - стрелочки появились
Ну да такое работает. Правда я сохранил в *.xlsx.

Проблема в том, что это коснулось 100..200 файлов. Пересохранять их всех (пусть и перебором в папке) изменит дату модификации файла.
А этот вопрос я так и не решил ещё. Не изменять дату модификации файла
 
ОФФ. В Ваших кодах очень много макрорекордного мусора. Прочтите эту статью. И обновление экрана отключайте (Application.ScreenUpdating)
Согласие есть продукт при полном непротивлении сторон
 
 
Цитата
jack_21 написал:
так и не решил
Так решите,  или то, что последний пост рекомендовал не работает?

Sanja, Там по ссылке не я, это моя темная сторона :-)
По вопросам из тем форума, личку не читаю.
 
:)  
Согласие есть продукт при полном непротивлении сторон
 
Цитата
БМВ написал:
Так решите,  или то, что последний пост рекомендовал не работает?
Ooops! Видимо, пропустил... Буду терзать.

Цитата
Sanja написал:
В Ваших кодах очень много макрорекордного мусора. Прочтите  эту статью .
Это оттого, что это всё собрано в интернете от разных создателей (что-то исправлял, что-то нет), что-то записано мной.
Спасибо, попробую и эту прочитать... :D На фоне того, что не могу найти понятный оптимизатор/чистильщик кода...
 
Цитата
jack_21 написал: не могу найти понятный оптимизатор/чистильщик кода
не уверен что такой вообще существует
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал:
не уверен что такой вообще существует
как так? Как минимум этот, этот и этот :-)
По вопросам из тем форума, личку не читаю.
 
8-0  А аутоматично нельзя?  :)  :)  :)
 
Можно: несколько месяцев посидеть на форумах, над справками, над своей задачей и написать обработку :)
 
Цитата
jack_21 написал:
А аутоматично нельзя?
только аутентично :-)
попробуйте https://www.download3k.ru/Razrabotka-Programmnogo-Obespecheniya/Kodirovanie-i-Kompilyatori/Download-... , если есть желание, я не смотрел даже.
Вот только не все то золото, что блестит. Любой мастер помогает что-то сделать до определенного уровня, но оптимально , как правило может сделать только специалист.
По вопросам из тем форума, личку не читаю.
 
Да пробовал я многие аналоги. Проблема в том, что я хочу понимать что именно ОНО делает. А я пока не дорос. А по-сему - сначала в ручную... :)
 
Пересохранение файла в XLSB и сразу же в XLS вот таким макросом организовал.
Найдено в интернете http://excelvba.ru/code/ChangeWorkbookFormat

Скрытый текст
Страницы: 1
Наверх