Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 27.11.2008, 10:05   #1
Юнлинг
Форумчанин
 
Регистрация: 17.10.2008
Сообщений: 239
Плохо сохранение таблицы без макросов

Уважаемые господа!
В процессе разработки возникла необходимость в следующем:
На компьютере открывается таблица tb.xls с Макросом. По окончанию выполнения таблица сохраняется на другом сетевом диске (t:\) следующем образом
ActiveWorkbook.SaveAs Filename:= _
"T:\data_potr\tb" + CBMonth.List(CBMonth.ListIndex) + " " + CBYear.List(CBYear.ListIndex) + ".xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Все работает OK. Но в таблице сохраняется и макрос.
Вопрос как изменить сохранение чтобы в новой таблице не было макроса и в то же время в исходной таблице он остался.
Юнлинг вне форума
Старый 27.11.2008, 10:26   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

полагаю SendKeys может помочь.
1.Открыть редактор ВБА
2.Выбрать нужный проект
3.Отметить все
4.Удалить
Проблемным мне представляется только пункт 2. Остальные однозначны, на все есть комбинации клавиш (Alt+F11, ...., Ctrl+A, Del).
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 27.11.2008, 10:50   #3
Юнлинг
Форумчанин
 
Регистрация: 17.10.2008
Сообщений: 239
По умолчанию

Уважаемый IgorGO!

Может я не достаточно точно сформулировал вопрос.
Основная расчетная таблица 1 (пустая) стартует в 4 часа утра первого числа каждого месяца в автоматическом режиме на одном из компьютеров который постоянно находиться в работе. После проведения расчетов которые ориентировочно идут в течении часа необходимо автоматическое сохранение этой таблицы на диске t без макросов и без участия человека. Т.е.на 1 диске таблица с макросом не сохраняется, а на диске t:\ таблица tb(номер месяца)(номер года) сохраняется. Именно в этой таблицы должны отсутствовать следы макросов.
Это необходимо сделать из следующих сображений.
Макрос запускается и храниться в месте "ЭтаКнига". И если юзер случайно согласиться на включение макроса все данные в таблице будут стерты.
Установить функцию безопасности в режим "Очень высокая" не возможно. А ручками удалять проект не всегда возможно.
Юнлинг вне форума
Старый 27.11.2008, 11:58   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Я все правильно понял (вроде).
Цитата:
необходимо автоматическое сохранение этой таблицы на диске t без макросов и без участия человека
SendKeys работает так, будто в активном проложении кто-то жмет на клавиши, но все это происходит без участия человека.

Ниже пример. Я на листе разместил кнопку, навесил на нее выполнение макроса Test. Теперь при нажатии этой кнопки, открывается радактор ВБА и отмечает весь приведенный ниже код. Кстати Ctrl+A, почему-то не сработал. Пришлось две команды отсылать. Паузы можно делать побольше.

Код:
Sub Test()
  SendKeys "%{F11}", True
  pause 0.1
  SendKeys "^{HOME}", True
  pause 0.05
  SendKeys "^+{END}", True
End Sub

Sub pause(Sec)
  T = Timer
  Do While Timer < T + Sec
      DoEvents
  Loop
End Sub
план бы я написал такой:
- открыть управляющий файл
- из него открыть ваш tb.xls (он выполнит свои расчеты)
- подождать энное время (application.ontime), а лучше - из tb.xls получить сигнал, что расчеты окончены.
- Открыть редактор ВБА
- Выбрать проект tb.xls
- Отметить весь код
- Удалить
- сохранить tb.xls с новым именем на нужном носителе
- закрыть управляющий файл

это направление для поиска. Успехов!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 27.11.2008, 12:40   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Юнлинг,
читать тут - http://www.msoffice.nm.ru/faq/macros/module.htm

ну и тут - Удаление кода, форм, модулей из книги.
и тут - Удалить все макросы с другого файла
Serge_Bliznykov вне форума
Старый 27.11.2008, 13:26   #6
Юнлинг
Форумчанин
 
Регистрация: 17.10.2008
Сообщений: 239
По умолчанию

Igor_GO b Serge_blixnykov огромное спасибо.
на планета Excel нашел все что нужно.
К сожалению на микрософте не смог посмотреть админитраторы сети закрыли туда доступ.
Но в ваших ответах есть все что нужно.
Юнлинг вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение текста (RichEdit) без формата Air Помощь студентам 2 06.08.2008 17:50
Сравнение макросов valerij Microsoft Office Excel 24 09.06.2008 00:57
Сохранение таблицы set БД в Delphi 6 02.05.2008 05:20
сохранение результата выборки из DBF файла в DBF файл с такой же структурой таблицы GazimagomedovM БД в Delphi 5 06.11.2007 17:58