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

Вход

Регистрация

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

 

= Мир MS Excel/Программа для очистки рабочей книги - Мир MS Excel

Старая форма входа
  • Страница 1 из 7
  • 1
  • 2
  • 3
  • 6
  • 7
  • »
Модератор форума: _Boroda_, китин  
Мир MS Excel » Вопросы и решения » Готовые решения » Программа для очистки рабочей книги (Автоматич. удал. мусора (метод предлож. Дж. Уокенбахом))
Программа для очистки рабочей книги
v__step Дата: Понедельник, 24.10.2011, 14:08 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 27 ±
Замечаний: 0% ±

Рабочая книга - программа с открытым исходным кодом
Создает новую книгу на основе существующей "с чистого листа"
В результате возрастает надежность расчетов и уменьшается размер книги
К сообщению приложен файл: V001.xls (98.0 Kb)


С уважением, Владимир
 
Ответить
СообщениеРабочая книга - программа с открытым исходным кодом
Создает новую книгу на основе существующей "с чистого листа"
В результате возрастает надежность расчетов и уменьшается размер книги

Автор - v__step
Дата добавления - 24.10.2011 в 14:08
Alex_ST Дата: Вторник, 25.10.2011, 21:29 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Интересно.
Хотелось бы разобраться в коде, но комментариев уж слишком мало sad
Ну, вы тогда чтобы можно было тестировать хоть поподробнее описание утилиты дайте: что чистится, что в новую книгу переносится программой, а что приходится "ручками".
Как в утилите с переносом элементов OLEObject, расположенных на листах? А с макросами из модулей листов?
Ну, в общем, как со всеми "граблями" на которые мы уже наступали в аналогичной теме: Файл распух до нелогичных размеров.?



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


Сообщение отредактировал Alex_ST - Вторник, 25.10.2011, 21:30
 
Ответить
СообщениеИнтересно.
Хотелось бы разобраться в коде, но комментариев уж слишком мало sad
Ну, вы тогда чтобы можно было тестировать хоть поподробнее описание утилиты дайте: что чистится, что в новую книгу переносится программой, а что приходится "ручками".
Как в утилите с переносом элементов OLEObject, расположенных на листах? А с макросами из модулей листов?
Ну, в общем, как со всеми "граблями" на которые мы уже наступали в аналогичной теме: Файл распух до нелогичных размеров.?

Автор - Alex_ST
Дата добавления - 25.10.2011 в 21:29
v__step Дата: Вторник, 25.10.2011, 23:06 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 27 ±
Замечаний: 0% ±

Добрый вечер, уважаемый Алексей!
Конечно, комментариев мало, описание очень слабое, но такая уже необычная история у этой работы...
То, что делается вручную, отмечено на листе "Справка" так: sad
Я постарался уменьшить число ручных операций до предела, хотя отдаю себе отчет в том, что обойтись совсем без ручных операций очень сложно.
В новую книгу переносятся данные, связи, форматирование, объекты, настройки печати, отображение окон листов, код стандартных и встроенных модулей, форм и т.д.
Если не сложно, потестируйте, а я что-нибудь подправлю, допишу.
Я, к сожалению, сейчас лишен возможности долго сидеть на форуме, поэтому еще не успел изучить все грабли, но обязательно посмотрю.

Я попал как раз туда, где народ очень активно лечит мою старую рану.
Сегодня почитал некоторые сообщения, впечатлился (отсечение лишних данных справа и снизу – действительно то, что у меня, к сожалению, опущено – я не имею дело с огромными файлами и обычно это делаю вручную, но почему бы не сделать программно!)

Пожалуйста, рассматривайте эту утилиту как слегка наивную, недописанную и "затравочную". Ей еще предстоит побороть детские болезни и, возможно, преодолеть непонимание.
Если будут вопросы, постараюсь ответить
Буду рад разумным правкам кода любым из Ваших друзей!
С уважением, Владимир


С уважением, Владимир

Сообщение отредактировал v__step - Вторник, 25.10.2011, 23:15
 
Ответить
СообщениеДобрый вечер, уважаемый Алексей!
Конечно, комментариев мало, описание очень слабое, но такая уже необычная история у этой работы...
То, что делается вручную, отмечено на листе "Справка" так: sad
Я постарался уменьшить число ручных операций до предела, хотя отдаю себе отчет в том, что обойтись совсем без ручных операций очень сложно.
В новую книгу переносятся данные, связи, форматирование, объекты, настройки печати, отображение окон листов, код стандартных и встроенных модулей, форм и т.д.
Если не сложно, потестируйте, а я что-нибудь подправлю, допишу.
Я, к сожалению, сейчас лишен возможности долго сидеть на форуме, поэтому еще не успел изучить все грабли, но обязательно посмотрю.

Я попал как раз туда, где народ очень активно лечит мою старую рану.
Сегодня почитал некоторые сообщения, впечатлился (отсечение лишних данных справа и снизу – действительно то, что у меня, к сожалению, опущено – я не имею дело с огромными файлами и обычно это делаю вручную, но почему бы не сделать программно!)

Пожалуйста, рассматривайте эту утилиту как слегка наивную, недописанную и "затравочную". Ей еще предстоит побороть детские болезни и, возможно, преодолеть непонимание.
Если будут вопросы, постараюсь ответить
Буду рад разумным правкам кода любым из Ваших друзей!
С уважением, Владимир

Автор - v__step
Дата добавления - 25.10.2011 в 23:06
v__step Дата: Среда, 26.10.2011, 09:32 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 27 ±
Замечаний: 0% ±

Уважаемые коллеги, под впечатлением Ваших идей, я добавил удлаление строк и столбцов за пределами значащего диапазона и частично переписал лист справки
К сообщению приложен файл: V002.zip (46.6 Kb)


С уважением, Владимир
 
Ответить
СообщениеУважаемые коллеги, под впечатлением Ваших идей, я добавил удлаление строк и столбцов за пределами значащего диапазона и частично переписал лист справки

Автор - v__step
Дата добавления - 26.10.2011 в 09:32
Alex_ST Дата: Среда, 26.10.2011, 09:32 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Владимир,
прошу прощения: вчера вечером был не внимателен и сразу полез смотреть код, а листа "Справка" не заметил...
Но и в листе "Справка" речи про интересующие меня объекты не идёт sad

Сегодня попробую на работе потестировать (если будет на это время).
А по поводу
Quote (v__step)
отсечение лишних данных справа и снизу – действительно то, что у меня, к сожалению, опущено
, так тут ещё вопрос:"А что есть лишние данные?"
Не пришлось бы циклом искать перебором снизу-вверх/справа-налево последние строку/столбец, в которых есть данные...
А как быть с теми объектами, которые не Range?
Конечно, можно попробовать проходить циклом по всем DrowingObjects листа и находить в них максимальные .TopLeftCell.Row, .TopLeftCell.Column , а потом сравнивать с UsedRange …

Но вот вопрос: а всё ли, что есть на листе и не Range входит в DrowingObjects ? Надо где-то найти подробную информацию по DrowingObjects. В Справке этой коллекции вообще нет. Значит, надо искать... У Уокенбаха посмотреть, в сети порыться.
В общем, есть над чем ещё поработать.



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

Сегодня попробую на работе потестировать (если будет на это время).
А по поводу
Quote (v__step)
отсечение лишних данных справа и снизу – действительно то, что у меня, к сожалению, опущено
, так тут ещё вопрос:"А что есть лишние данные?"
Не пришлось бы циклом искать перебором снизу-вверх/справа-налево последние строку/столбец, в которых есть данные...
А как быть с теми объектами, которые не Range?
Конечно, можно попробовать проходить циклом по всем DrowingObjects листа и находить в них максимальные .TopLeftCell.Row, .TopLeftCell.Column , а потом сравнивать с UsedRange …

Но вот вопрос: а всё ли, что есть на листе и не Range входит в DrowingObjects ? Надо где-то найти подробную информацию по DrowingObjects. В Справке этой коллекции вообще нет. Значит, надо искать... У Уокенбаха посмотреть, в сети порыться.
В общем, есть над чем ещё поработать.

Автор - Alex_ST
Дата добавления - 26.10.2011 в 09:32
Alex_ST Дата: Среда, 26.10.2011, 09:37 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Quote (v__step)
я добавил удлаление строк и столбцов за пределами значащего диапазона и частично переписал лист справки

Упс! Дуплетом отпостились...
Ща буду посмотреть.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
Quote (v__step)
я добавил удлаление строк и столбцов за пределами значащего диапазона и частично переписал лист справки

Упс! Дуплетом отпостились...
Ща буду посмотреть.

Автор - Alex_ST
Дата добавления - 26.10.2011 в 09:37
v__step Дата: Среда, 26.10.2011, 09:47 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 27 ±
Замечаний: 0% ±

По поводу графических объектов:
Я только что высказался по этому и некоторым другим вопросам (http://www.excelworld.ru/forum/3-57-2)
Конечно же, о них пришлось позаботиться

Еще раз прошу извинения за скудность комментариев
Я сторонник краткости в коде и комментариях - они хороши до определенных пределов, дальше загромождают пространство и мешают увидеть главное
Многие строки, особенно при объектном программировании говорят сами за себя

Как ни печально, но мое время на работе исчерпано!


С уважением, Владимир
 
Ответить
СообщениеПо поводу графических объектов:
Я только что высказался по этому и некоторым другим вопросам (http://www.excelworld.ru/forum/3-57-2)
Конечно же, о них пришлось позаботиться

Еще раз прошу извинения за скудность комментариев
Я сторонник краткости в коде и комментариях - они хороши до определенных пределов, дальше загромождают пространство и мешают увидеть главное
Многие строки, особенно при объектном программировании говорят сами за себя

Как ни печально, но мое время на работе исчерпано!

Автор - v__step
Дата добавления - 26.10.2011 в 09:47
v__step Дата: Среда, 26.10.2011, 12:28 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 27 ±
Замечаний: 0% ±

Кое-что подправил, но наспех-насмех
Excel сопротивляется как может и по-махровому глючит
Он и так нестабилен на графике

Ладно, со временем разберемся
Все идет к решению "в лоб" - запоминанию и восстановлению положения и размеров объектов

Лишними данными я назвал ячейки без формул и значений. Ребята на форуме не случайно их удаляют – это эффективно. Я сам часто вручную удаляю лишние столбцы и строки (именно в таком порядке, не наоборот!)

Я воспользовался коллекцией DrowingObjects, а не Shapes осознанно, хотя она и устарела, т.к. коллекция Shapes неоднократно подводила. Обратите внимание, при записи макросов Excel работает по-прежнему с DrowingObjects, а не Shapes!
Для получения минимальной информации по этой коллекции в Object Browser надо в контекстном меню выбрать опцию "Show Hidden Members", т.к. она скрыта по умолчанию

У Уокенбаха подобные вопросы, конечно, не освещены, тем более, что во всем, что связано с графикой, много некорректностей.

Защиту объектов выполняю управлением их состояния – то плавающее, то закрепленное по отношению к ячейкам
Но уже натолкнулся на неприятные побочные эффекты в тестовой рабочей книги Мирослава Петеле (она черезвычайно неустойчивая и глючная)

С уважением, Владимир
К сообщению приложен файл: 0818461.zip (47.0 Kb)


С уважением, Владимир

Сообщение отредактировал v__step - Среда, 26.10.2011, 12:49
 
Ответить
СообщениеКое-что подправил, но наспех-насмех
Excel сопротивляется как может и по-махровому глючит
Он и так нестабилен на графике

Ладно, со временем разберемся
Все идет к решению "в лоб" - запоминанию и восстановлению положения и размеров объектов

Лишними данными я назвал ячейки без формул и значений. Ребята на форуме не случайно их удаляют – это эффективно. Я сам часто вручную удаляю лишние столбцы и строки (именно в таком порядке, не наоборот!)

Я воспользовался коллекцией DrowingObjects, а не Shapes осознанно, хотя она и устарела, т.к. коллекция Shapes неоднократно подводила. Обратите внимание, при записи макросов Excel работает по-прежнему с DrowingObjects, а не Shapes!
Для получения минимальной информации по этой коллекции в Object Browser надо в контекстном меню выбрать опцию "Show Hidden Members", т.к. она скрыта по умолчанию

У Уокенбаха подобные вопросы, конечно, не освещены, тем более, что во всем, что связано с графикой, много некорректностей.

Защиту объектов выполняю управлением их состояния – то плавающее, то закрепленное по отношению к ячейкам
Но уже натолкнулся на неприятные побочные эффекты в тестовой рабочей книги Мирослава Петеле (она черезвычайно неустойчивая и глючная)

С уважением, Владимир

Автор - v__step
Дата добавления - 26.10.2011 в 12:28
Alex_ST Дата: Среда, 26.10.2011, 12:34 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Владимир,
я немного попытал вашу V002 на специально созданном файлике.
1. Улыбнула шапка MsgBox'a : "Всё будет хорошо!" biggrin
Особенно, если учесть, что на установке границ печати думало достаточно долго.
2. Не перенеслись OLEObject , которые были на листах.
3. Автофильтры не установились
4. Группа и структура - ОК
_. Закрепление границ листов - ОК
5. Код модулей листов, вроде, ОК. Модуль ЭтаКнига проверить забыл...
6. Модули класса - не проверял, но т.к. модули листов - это тоже модули класса, то, наверное, тоже должно быть ОК
7. Picture (в т.ч. и элементы управления форм) - ОК
8. Списки - ОК
9. Проверка условий - ОК
10. Примечания - не проверял
11. Сводные таблицы - не проверял
12. Диаграммы - не проверял
13. Имена (в т.ч. и не привязанные к диапазонам) - ОК

К стати, на счёт защиты имён - не понял, что это (наверное, просто пробел в эрудиции) и как это юзать

Не понравилось, что исходный файл переименовывается в .bak и пересохраняется.
Если он и так "распух до безобразия", то его пересохранение только ещё больше затормозит утилиту.
Уж лучше его вообще не трогать, а новому "похудевшему" файлу прибавить какой-нибудь суффикс в имени.
К тому же после переименования своего исходного тестового в .xls и попытке его открыть Ёксель "ругнулся" так, как я никогда ещё не видел:

Но вполне возможно, что это просто глюк пробежал. Ещё раз я не пробовал.
К сообщению приложен файл: 4716800.jpg (15.7 Kb)



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


Сообщение отредактировал Alex_ST - Среда, 26.10.2011, 12:38
 
Ответить
СообщениеВладимир,
я немного попытал вашу V002 на специально созданном файлике.
1. Улыбнула шапка MsgBox'a : "Всё будет хорошо!" biggrin
Особенно, если учесть, что на установке границ печати думало достаточно долго.
2. Не перенеслись OLEObject , которые были на листах.
3. Автофильтры не установились
4. Группа и структура - ОК
_. Закрепление границ листов - ОК
5. Код модулей листов, вроде, ОК. Модуль ЭтаКнига проверить забыл...
6. Модули класса - не проверял, но т.к. модули листов - это тоже модули класса, то, наверное, тоже должно быть ОК
7. Picture (в т.ч. и элементы управления форм) - ОК
8. Списки - ОК
9. Проверка условий - ОК
10. Примечания - не проверял
11. Сводные таблицы - не проверял
12. Диаграммы - не проверял
13. Имена (в т.ч. и не привязанные к диапазонам) - ОК

К стати, на счёт защиты имён - не понял, что это (наверное, просто пробел в эрудиции) и как это юзать

Не понравилось, что исходный файл переименовывается в .bak и пересохраняется.
Если он и так "распух до безобразия", то его пересохранение только ещё больше затормозит утилиту.
Уж лучше его вообще не трогать, а новому "похудевшему" файлу прибавить какой-нибудь суффикс в имени.
К тому же после переименования своего исходного тестового в .xls и попытке его открыть Ёксель "ругнулся" так, как я никогда ещё не видел:

Но вполне возможно, что это просто глюк пробежал. Ещё раз я не пробовал.

Автор - Alex_ST
Дата добавления - 26.10.2011 в 12:34
Alex_ST Дата: Среда, 26.10.2011, 12:44 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Блин, Володя,
пока я тестировал и отчёт писАл, вы уже новую версию выложили...
Я же взялся тестировать только прочитав в вашем посте:
Quote (v__step)
мое время на работе исчерпано


Ну, тогда я лучше подожду пока вы ещё одну не "родите" с учётом моего отчёта...



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеБлин, Володя,
пока я тестировал и отчёт писАл, вы уже новую версию выложили...
Я же взялся тестировать только прочитав в вашем посте:
Quote (v__step)
мое время на работе исчерпано


Ну, тогда я лучше подожду пока вы ещё одну не "родите" с учётом моего отчёта...

Автор - Alex_ST
Дата добавления - 26.10.2011 в 12:44
v__step Дата: Среда, 26.10.2011, 13:00 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 27 ±
Замечаний: 0% ±

Уважаемый Алексей!
Все-таки, пожалуйста, смотрите последнюю версию - там я подправил одну ошибку

Слет автофильтра и OleObjects подтверждаю!!
Будем работать

Быстродействие нам еще не раз покажет свои зубки
Вероятно, придется существенно расширить набор опций

.bak файл закрывается в самом начале работы, и поэтому не может оказывать влияние на загрузку памяти,
но действительно, можно добавить возможность работы с первоначально закрытым файлом - это не сложно

Именованные ячейки, формулы, константы при очистке, если не принять специальных мер, просто удаляются, если на них не было ссылок на рабочих листах
Часто это совершенно недопустимо, поэтому приходится затратить много усилий для их защиты

Если я немедленно не прекращу свои упражнения, меня уволят не только с форума, но и с работы

С уважением, Владимир


С уважением, Владимир

Сообщение отредактировал v__step - Четверг, 27.10.2011, 09:46
 
Ответить
СообщениеУважаемый Алексей!
Все-таки, пожалуйста, смотрите последнюю версию - там я подправил одну ошибку

Слет автофильтра и OleObjects подтверждаю!!
Будем работать

Быстродействие нам еще не раз покажет свои зубки
Вероятно, придется существенно расширить набор опций

.bak файл закрывается в самом начале работы, и поэтому не может оказывать влияние на загрузку памяти,
но действительно, можно добавить возможность работы с первоначально закрытым файлом - это не сложно

Именованные ячейки, формулы, константы при очистке, если не принять специальных мер, просто удаляются, если на них не было ссылок на рабочих листах
Часто это совершенно недопустимо, поэтому приходится затратить много усилий для их защиты

Если я немедленно не прекращу свои упражнения, меня уволят не только с форума, но и с работы

С уважением, Владимир

Автор - v__step
Дата добавления - 26.10.2011 в 13:00
Alex_ST Дата: Среда, 26.10.2011, 17:10 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Завтра попробую...
Сейчас пытаюсь откатиться с Firefox 7.0.1 на CometBird 7.0.1
Это альтернативный Фоксу броузер на том же движке, даже закладки подхватил и плагины практически все подходят, но, говорят, меньше тормозов...
А вот с паролями - беда. Никак не могу найти чем бы их импортировать...



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеЗавтра попробую...
Сейчас пытаюсь откатиться с Firefox 7.0.1 на CometBird 7.0.1
Это альтернативный Фоксу броузер на том же движке, даже закладки подхватил и плагины практически все подходят, но, говорят, меньше тормозов...
А вот с паролями - беда. Никак не могу найти чем бы их импортировать...

Автор - Alex_ST
Дата добавления - 26.10.2011 в 17:10
v__step Дата: Четверг, 27.10.2011, 10:03 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 27 ±
Замечаний: 0% ±

Доброе утро!
Вчера вечером поигрался с OleObgects и получил первый положительный результат, просто сгруппировав объекты перед копированием

Автофильтры, будем надеяться, дело нехитрое - это свежие, хорошо документированные объекты, скорее всего, здесь не будет проблем

Файловые операции, быстродействие, настройки и все-все остальное предлагаю обсудить отдельно, детально, а главное, спокойно
Суетиться больше не буду
Пока что жду результатов тестирования

С уважением, Владимир


С уважением, Владимир

Сообщение отредактировал v__step - Четверг, 27.10.2011, 10:40
 
Ответить
СообщениеДоброе утро!
Вчера вечером поигрался с OleObgects и получил первый положительный результат, просто сгруппировав объекты перед копированием

Автофильтры, будем надеяться, дело нехитрое - это свежие, хорошо документированные объекты, скорее всего, здесь не будет проблем

Файловые операции, быстродействие, настройки и все-все остальное предлагаю обсудить отдельно, детально, а главное, спокойно
Суетиться больше не буду
Пока что жду результатов тестирования

С уважением, Владимир

Автор - v__step
Дата добавления - 27.10.2011 в 10:03
Alex_ST Дата: Четверг, 27.10.2011, 12:50 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Добрый день, Владимир! smile (я только сейчас добрался до форума)
OleObgects , ИМХО, группировать не стоит для сохранения главного достоинства утилиты: никаких изменений исходного "толстого" файла перед созданием нового "похудевшего" (ну, может быть, только имя сменить на то же, что и было, но с суффиксом _fat, например, но никак уж не расширение на .bak )
В моих процедурах, например, OleObgects может быть несколько на каждом из листов и их позиция меняется программно (позиционируются по углам ячеек, меняют размер). Могут возникнуть проблемы при группировке/разгруппировке ...
К стати, никогда их не группировал (за очевидной ненадобностью данной процедуры)… А работать-то они после группировки продолжают? Или вы предлагаете их группировать перед переносом на новый лист, а потом уж разгруппировывать?
Но, работая с автофигурами и рисунками на листах Ёкселя, я заметил, что после разгруппировки иногда теряется позиция объектов, бывшая до группировки (ну, в смысле кто был на переднем плане, кто на заднем, а кто в середине ...)



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеДобрый день, Владимир! smile (я только сейчас добрался до форума)
OleObgects , ИМХО, группировать не стоит для сохранения главного достоинства утилиты: никаких изменений исходного "толстого" файла перед созданием нового "похудевшего" (ну, может быть, только имя сменить на то же, что и было, но с суффиксом _fat, например, но никак уж не расширение на .bak )
В моих процедурах, например, OleObgects может быть несколько на каждом из листов и их позиция меняется программно (позиционируются по углам ячеек, меняют размер). Могут возникнуть проблемы при группировке/разгруппировке ...
К стати, никогда их не группировал (за очевидной ненадобностью данной процедуры)… А работать-то они после группировки продолжают? Или вы предлагаете их группировать перед переносом на новый лист, а потом уж разгруппировывать?
Но, работая с автофигурами и рисунками на листах Ёкселя, я заметил, что после разгруппировки иногда теряется позиция объектов, бывшая до группировки (ну, в смысле кто был на переднем плане, кто на заднем, а кто в середине ...)

Автор - Alex_ST
Дата добавления - 27.10.2011 в 12:50
v__step Дата: Четверг, 27.10.2011, 13:54 | Сообщение № 15
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 27 ±
Замечаний: 0% ±

Конечно же, я описал эту "химию" вкратце

То, что получил, присоединяю (тестовый файл + подправленную утилиту)

Более подробно:
Сначала для каждого объекта, как и прежде, запоминается тип привязки к ячейкам
Затем создается дополнительный объект (не Ole!)
Все объекты листа группируются (в этот момент Ole в теплой компании забываются)
Далее копирование, разгруппирование, удаление "засланного казачка" и восстановление типа привязки
Алгоритм очень простой - несколько дополнительных строчек

Другое дело - Ваши замечания по поводу Z-порядка
Вполне возможно, Вы правы: нужен поэлементный перенос
Мало того, у меня лежит рабочая книга очень известного разработчика расчетных программ для деталей машин - чеха Мирослава Петеле, и там при группировке слетают а точнее, улетают не только элементы управления Ole, но и более устойчивые элементы управления с панели Формы

Подумаем, а пока что синица в руке smile
По поводу файлов пока что не успел подумать
Вы главное, критикуйте, критикуйте!
Я отреагирую

С уважением, Владимир
К сообщению приложен файл: 5720214.zip (66.7 Kb)


С уважением, Владимир

Сообщение отредактировал v__step - Четверг, 27.10.2011, 13:55
 
Ответить
СообщениеКонечно же, я описал эту "химию" вкратце

То, что получил, присоединяю (тестовый файл + подправленную утилиту)

Более подробно:
Сначала для каждого объекта, как и прежде, запоминается тип привязки к ячейкам
Затем создается дополнительный объект (не Ole!)
Все объекты листа группируются (в этот момент Ole в теплой компании забываются)
Далее копирование, разгруппирование, удаление "засланного казачка" и восстановление типа привязки
Алгоритм очень простой - несколько дополнительных строчек

Другое дело - Ваши замечания по поводу Z-порядка
Вполне возможно, Вы правы: нужен поэлементный перенос
Мало того, у меня лежит рабочая книга очень известного разработчика расчетных программ для деталей машин - чеха Мирослава Петеле, и там при группировке слетают а точнее, улетают не только элементы управления Ole, но и более устойчивые элементы управления с панели Формы

Подумаем, а пока что синица в руке smile
По поводу файлов пока что не успел подумать
Вы главное, критикуйте, критикуйте!
Я отреагирую

С уважением, Владимир

Автор - v__step
Дата добавления - 27.10.2011 в 13:54
Alex_ST Дата: Четверг, 27.10.2011, 15:04 | Сообщение № 16
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Quote (v__step)
Ваши замечания по поводу Z-порядка

Вот-вот! Всю голову сломал, пока писАл, а так и не вспомнил, что это называется Z-order Склероз, однако... sad
Не знаю, удастся ли сегодня попытать ваш последний ( ) вариант утилиты ...
Попробую. Но не обещаю.
К стати,забыл посмотреть в коде, а сейчас нет времени: а что там с примечаниями делается? Про то, что их нужно переносить, наверняка не забыли, а вот как с копированием их формата (при чём не только формата шрифта, но и формата фигуры)? А как с коллекцией CustomDocumentProperty - в ней иногда запоминают задаваемые пользователем параметры и константы? Также как и в Names - невидимые имена для хранения значений.
Если в книге создано не привязанное к ячейкам имя (ну, например, ПИ=3,14158265), а ни в одной формуле или в процедурах книги оно ПОКА не используется, то имя не удалится?
Гиперссылки? Диаграммы? Снимки "камерой"?



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


Сообщение отредактировал Alex_ST - Четверг, 27.10.2011, 15:09
 
Ответить
Сообщение
Quote (v__step)
Ваши замечания по поводу Z-порядка

Вот-вот! Всю голову сломал, пока писАл, а так и не вспомнил, что это называется Z-order Склероз, однако... sad
Не знаю, удастся ли сегодня попытать ваш последний ( ) вариант утилиты ...
Попробую. Но не обещаю.
К стати,забыл посмотреть в коде, а сейчас нет времени: а что там с примечаниями делается? Про то, что их нужно переносить, наверняка не забыли, а вот как с копированием их формата (при чём не только формата шрифта, но и формата фигуры)? А как с коллекцией CustomDocumentProperty - в ней иногда запоминают задаваемые пользователем параметры и константы? Также как и в Names - невидимые имена для хранения значений.
Если в книге создано не привязанное к ячейкам имя (ну, например, ПИ=3,14158265), а ни в одной формуле или в процедурах книги оно ПОКА не используется, то имя не удалится?
Гиперссылки? Диаграммы? Снимки "камерой"?

Автор - Alex_ST
Дата добавления - 27.10.2011 в 15:04
v__step Дата: Четверг, 27.10.2011, 18:12 | Сообщение № 17
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 27 ±
Замечаний: 0% ±

Дополним меню для "шведской лесопилки": учет расположения примечаний на листе; сценарии; стили; формулы условных форматов; проверки значений; списки; таблицы; запросы к внешним данным; кэши сводных таблиц; кубы OLAP... что еще...

Хорошо было бы иметь небольшую, но емкую тестовую книгу с пополнением: вспомнил о чем-то - добавил. В ней удобно собрать все вопросы, а ответом должна стать сама утилита, и жить они должны в одной папке.

Вы очень заинтересовали меня Вашими знаниями в области Ole-элементов и графики.
Если можно, поделитесь (v__step@mail.ru) соответствующими фрагментами кода и чем-то для теста.
Очень, очень может быть, что у Вас в руках нечто наиболее разумное и предпочтительное!

По поводу имен: это мой стратегический неприкосновенный запас
На листе защиты имен для начала создаются ссылки на все имена, а потом уже выполняются действия, т.е. чистилка их уже не может обидеть
Если Вы захотите удалить какие-то имена избирательно, удалите соответствующие строки на листе защиты, а затем повторите чистку
Чистилка подумает, и возможно, удалит
Если Вы удалили строку с именем, на которое есть ссылки из других ячеек, имен или кода VBA (сканируются все доступные загруженные надстройки), имя все-таки останется

Сейчас вроде бы решил задачку с пользовательскими свойствами файла и ушел с головой в Ole (ох и привереды эти Ole :))

С уважением, Владимир


С уважением, Владимир

Сообщение отредактировал v__step - Пятница, 28.10.2011, 17:19
 
Ответить
СообщениеДополним меню для "шведской лесопилки": учет расположения примечаний на листе; сценарии; стили; формулы условных форматов; проверки значений; списки; таблицы; запросы к внешним данным; кэши сводных таблиц; кубы OLAP... что еще...

Хорошо было бы иметь небольшую, но емкую тестовую книгу с пополнением: вспомнил о чем-то - добавил. В ней удобно собрать все вопросы, а ответом должна стать сама утилита, и жить они должны в одной папке.

Вы очень заинтересовали меня Вашими знаниями в области Ole-элементов и графики.
Если можно, поделитесь (v__step@mail.ru) соответствующими фрагментами кода и чем-то для теста.
Очень, очень может быть, что у Вас в руках нечто наиболее разумное и предпочтительное!

По поводу имен: это мой стратегический неприкосновенный запас
На листе защиты имен для начала создаются ссылки на все имена, а потом уже выполняются действия, т.е. чистилка их уже не может обидеть
Если Вы захотите удалить какие-то имена избирательно, удалите соответствующие строки на листе защиты, а затем повторите чистку
Чистилка подумает, и возможно, удалит
Если Вы удалили строку с именем, на которое есть ссылки из других ячеек, имен или кода VBA (сканируются все доступные загруженные надстройки), имя все-таки останется

Сейчас вроде бы решил задачку с пользовательскими свойствами файла и ушел с головой в Ole (ох и привереды эти Ole :))

С уважением, Владимир

Автор - v__step
Дата добавления - 27.10.2011 в 18:12
v__step Дата: Пятница, 28.10.2011, 17:15 | Сообщение № 18
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 27 ±
Замечаний: 0% ±

Для общих настроек печати ввел проверки (изменяю свойства только при отрицательных результатов проверок) - быстродействие немного поправилось
Ускорил и упростил сохранение оригинала, по Вашему совету перешел от *.bak к fat_*
Ole пока даются только в группе

Жизнь начинает налаживаться smile
Алексей, где же Вы? sad


С уважением, Владимир

Сообщение отредактировал v__step - Пятница, 28.10.2011, 20:24
 
Ответить
СообщениеДля общих настроек печати ввел проверки (изменяю свойства только при отрицательных результатов проверок) - быстродействие немного поправилось
Ускорил и упростил сохранение оригинала, по Вашему совету перешел от *.bak к fat_*
Ole пока даются только в группе

Жизнь начинает налаживаться smile
Алексей, где же Вы? sad

Автор - v__step
Дата добавления - 28.10.2011 в 17:15
Alex_ST Дата: Пятница, 28.10.2011, 21:32 | Сообщение № 19
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Володя,
прошу прощения что сегодня молчал в форуме: и дел подвалили, и всё ещё бьюсь с переходом на рабочем компьютере с постоянно глухо виснущего и вешающего весь комп Firefox 7.0.1 на CometBird 7.0.1, которая хоть и тоже подвисает, но только 2-3 раза в день и не так круто, как Лиса...
Вроде, к концу рабочего дня всё наладил, но искать/делать пример для тестирования оказалось уже некогда
А дома у меня примеров мало... Но сейчас поищу, что-нибудь и выложу.
Ну, вот для "пыток" мой любимый "Удобный автофильтр" и надстройка "Управление видимостью листов", например
К сообщению приложен файл: __v6.4.zip (51.7 Kb) · __.xla (52.0 Kb)



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


Сообщение отредактировал Alex_ST - Пятница, 28.10.2011, 21:33
 
Ответить
СообщениеВолодя,
прошу прощения что сегодня молчал в форуме: и дел подвалили, и всё ещё бьюсь с переходом на рабочем компьютере с постоянно глухо виснущего и вешающего весь комп Firefox 7.0.1 на CometBird 7.0.1, которая хоть и тоже подвисает, но только 2-3 раза в день и не так круто, как Лиса...
Вроде, к концу рабочего дня всё наладил, но искать/делать пример для тестирования оказалось уже некогда
А дома у меня примеров мало... Но сейчас поищу, что-нибудь и выложу.
Ну, вот для "пыток" мой любимый "Удобный автофильтр" и надстройка "Управление видимостью листов", например

Автор - Alex_ST
Дата добавления - 28.10.2011 в 21:32
Alex_ST Дата: Пятница, 28.10.2011, 21:36 | Сообщение № 20
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Quote (v__step)
Ускорил и упростил сохранение оригинала

Стыжусь спросить после сегодняшнего своего нехорошего поведения … Но где файлик, в котором вы это сделали? tongue



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
Quote (v__step)
Ускорил и упростил сохранение оригинала

Стыжусь спросить после сегодняшнего своего нехорошего поведения … Но где файлик, в котором вы это сделали? tongue

Автор - Alex_ST
Дата добавления - 28.10.2011 в 21:36
Мир MS Excel » Вопросы и решения » Готовые решения » Программа для очистки рабочей книги (Автоматич. удал. мусора (метод предлож. Дж. Уокенбахом))
  • Страница 1 из 7
  • 1
  • 2
  • 3
  • 6
  • 7
  • »
Поиск:

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