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

Вход

Регистрация

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

 

= Мир MS Excel/"Сохранить файл как" после его изменения - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » "Сохранить файл как" после его изменения (Макросы/Sub)
"Сохранить файл как" после его изменения
fairylive Дата: Четверг, 16.03.2017, 13:19 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 122
Репутация: 4 ±
Замечаний: 0% ±

Excel 2016
Всем привет!
Имеется некая программа которая выгружает данные в Excel. Имеется также файл назовем его шаблон.xls в который и выгружаются данные. Проблема в том что после открытия файла (это происходит автоматом после выгрузки) файл необходимо сохранить как. Бывает так что кто-то забывает это сделать. И тогда в шаблоне появляются лишние данные. Хочу написать макрос который предлагал бы сохранять как сразу после открытия. Но не очень понимаю последовательность событий. По идее сначала файл открывает та программа, потом в невидимом режиме она будет долго выгружать данные и только затем на экране отобразится файл. Вот тут то надо бы его и сохранить под другим именем. Вобщем пните в нужном направлении.


Сообщение отредактировал fairylive - Четверг, 16.03.2017, 14:24
 
Ответить
СообщениеВсем привет!
Имеется некая программа которая выгружает данные в Excel. Имеется также файл назовем его шаблон.xls в который и выгружаются данные. Проблема в том что после открытия файла (это происходит автоматом после выгрузки) файл необходимо сохранить как. Бывает так что кто-то забывает это сделать. И тогда в шаблоне появляются лишние данные. Хочу написать макрос который предлагал бы сохранять как сразу после открытия. Но не очень понимаю последовательность событий. По идее сначала файл открывает та программа, потом в невидимом режиме она будет долго выгружать данные и только затем на экране отобразится файл. Вот тут то надо бы его и сохранить под другим именем. Вобщем пните в нужном направлении.

Автор - fairylive
Дата добавления - 16.03.2017 в 13:19
sboy Дата: Четверг, 16.03.2017, 13:27 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
так допишите после выгрузки данных
[vba]
Код
Save as
[/vba]
или приложите код выгрузки - допишем вместе


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
так допишите после выгрузки данных
[vba]
Код
Save as
[/vba]
или приложите код выгрузки - допишем вместе

Автор - sboy
Дата добавления - 16.03.2017 в 13:27
Perfect2You Дата: Четверг, 16.03.2017, 13:29 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 237
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
Лучше всего в программу дописать "сохранение как" с любым техническим именем (хоть с номерным: запускается цикл, проверяющий: есть ли файл с таким именем и пока есть прибавляется 1 к имени).
Если с изменением программы трудности, то можно в модуль листа, в который выгружаются данные на частое событие, допустим Worksheet_Change или Worksheet_SelectionChange вставить проверку на имя файла. И если оно совпадает с именем файла-шаблона, то требовать сохранения как или самой процедурке это сделать.
 
Ответить
СообщениеЛучше всего в программу дописать "сохранение как" с любым техническим именем (хоть с номерным: запускается цикл, проверяющий: есть ли файл с таким именем и пока есть прибавляется 1 к имени).
Если с изменением программы трудности, то можно в модуль листа, в который выгружаются данные на частое событие, допустим Worksheet_Change или Worksheet_SelectionChange вставить проверку на имя файла. И если оно совпадает с именем файла-шаблона, то требовать сохранения как или самой процедурке это сделать.

Автор - Perfect2You
Дата добавления - 16.03.2017 в 13:29
fairylive Дата: Четверг, 16.03.2017, 14:18 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 122
Репутация: 4 ±
Замечаний: 0% ±

Excel 2016
Да с изменением программы проблемы. Нам доступна возможность указать файл шаблона. Нужен макрос на события. Это я все понимаю. Не понятно к чему их прикручивать. На что событие. Файл шаблон это типа просто шапка таблицы. В какой-то момент его открывает сторонняя программа и записывает под шапку данные. По времени это может быть как мгновенно так и до 5 минут. Потом на экране появляется окно Excel. Событие на появление на экране программы Excel? Так ведь может быть что Excel уже открыт.
 
Ответить
СообщениеДа с изменением программы проблемы. Нам доступна возможность указать файл шаблона. Нужен макрос на события. Это я все понимаю. Не понятно к чему их прикручивать. На что событие. Файл шаблон это типа просто шапка таблицы. В какой-то момент его открывает сторонняя программа и записывает под шапку данные. По времени это может быть как мгновенно так и до 5 минут. Потом на экране появляется окно Excel. Событие на появление на экране программы Excel? Так ведь может быть что Excel уже открыт.

Автор - fairylive
Дата добавления - 16.03.2017 в 14:18
Perfect2You Дата: Четверг, 16.03.2017, 14:50 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 237
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
При открытом EXCEL открываете среду VBA (Alt + F11).
В верхнем левом окошке под меню находите файл, находите в нем нужный лист. Правой кнопкой мыши на названии листа, выбираете "View Code" В правой части открывается окошко
В его верхнем левом углу выпадающий список со значением "(General)". Проваливаетесь, выбираете Worksheet.
Вам сразу же будет предложена процедурка Private Sub Worksheet_SelectionChange(ByVal Target As Range) - на событие по изменению активной ячейки. Можете писать код сюда. Если считаете нужным действовать по другому событию, правее Worksheet тоже из выпадающего списка выберите нужное. Оболочка программы-обработчика (название, параметры, End Sub) появятся автоматом.
В зависимости от версии EXCEL возможны варианты, но, надеюсь, интуитивно-понятно будет, как добраться. Удачи!
 
Ответить
СообщениеПри открытом EXCEL открываете среду VBA (Alt + F11).
В верхнем левом окошке под меню находите файл, находите в нем нужный лист. Правой кнопкой мыши на названии листа, выбираете "View Code" В правой части открывается окошко
В его верхнем левом углу выпадающий список со значением "(General)". Проваливаетесь, выбираете Worksheet.
Вам сразу же будет предложена процедурка Private Sub Worksheet_SelectionChange(ByVal Target As Range) - на событие по изменению активной ячейки. Можете писать код сюда. Если считаете нужным действовать по другому событию, правее Worksheet тоже из выпадающего списка выберите нужное. Оболочка программы-обработчика (название, параметры, End Sub) появятся автоматом.
В зависимости от версии EXCEL возможны варианты, но, надеюсь, интуитивно-понятно будет, как добраться. Удачи!

Автор - Perfect2You
Дата добавления - 16.03.2017 в 14:50
_Boroda_ Дата: Четверг, 16.03.2017, 15:19 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А может повесить сохранение на момент ЗАКРЫТИЯ файла?
[vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)

End Sub
[/vba]
А к названию файла можно приклеивать дату-время в формате, например, Файл__20170316_152037


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА может повесить сохранение на момент ЗАКРЫТИЯ файла?
[vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)

End Sub
[/vba]
А к названию файла можно приклеивать дату-время в формате, например, Файл__20170316_152037

Автор - _Boroda_
Дата добавления - 16.03.2017 в 15:19
fairylive Дата: Четверг, 16.03.2017, 15:24 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 122
Репутация: 4 ±
Замечаний: 0% ±

Excel 2016
Perfect2You, это я всё знаю. Какое событие должно быть? Как понять в какой момент та программа заканчивает выгрузку? Про то что Excel появляется на экране тоже не совсем верно. Он появляется свернутым мигающим на панеле задач. На мой взгляд больше всего подходит событие Workbook_WindowActivate. Только окно экселя ведь не активэйт появляется. А свёрнутым...
 
Ответить
СообщениеPerfect2You, это я всё знаю. Какое событие должно быть? Как понять в какой момент та программа заканчивает выгрузку? Про то что Excel появляется на экране тоже не совсем верно. Он появляется свернутым мигающим на панеле задач. На мой взгляд больше всего подходит событие Workbook_WindowActivate. Только окно экселя ведь не активэйт появляется. А свёрнутым...

Автор - fairylive
Дата добавления - 16.03.2017 в 15:24
fairylive Дата: Четверг, 16.03.2017, 15:30 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 122
Репутация: 4 ±
Замечаний: 0% ±

Excel 2016
А может повесить сохранение на момент ЗАКРЫТИЯ файла?

Нет. Так не годится. Хотя конечно довольно просто. Просто вот буквально на днях человек сделал выгрузку и на автомате нажал Ctrl+s после появления на экране файла с выгрузкой. Запорол шаблон. И даже глазом не моргнул. После этого эту же процедуру стали делать другие люди и у них в отчетах лишние данные. Будет день когда кто-то не проверит их. Хочется это заранее всё предупредить. А то как на бочке с порохом работаем.
 
Ответить
Сообщение
А может повесить сохранение на момент ЗАКРЫТИЯ файла?

Нет. Так не годится. Хотя конечно довольно просто. Просто вот буквально на днях человек сделал выгрузку и на автомате нажал Ctrl+s после появления на экране файла с выгрузкой. Запорол шаблон. И даже глазом не моргнул. После этого эту же процедуру стали делать другие люди и у них в отчетах лишние данные. Будет день когда кто-то не проверит их. Хочется это заранее всё предупредить. А то как на бочке с порохом работаем.

Автор - fairylive
Дата добавления - 16.03.2017 в 15:30
Pelena Дата: Четверг, 16.03.2017, 15:34 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 19197
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
Сохраните шаблон в формате .xlt и все проблемы уйдут сами собой


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеСохраните шаблон в формате .xlt и все проблемы уйдут сами собой

Автор - Pelena
Дата добавления - 16.03.2017 в 15:34
_Boroda_ Дата: Четверг, 16.03.2017, 15:37 | Сообщение № 10
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Ээээ, я не совсем понял, почему "так не годится". Как раз все Ваше дальнейшее пояснение подтверждает, что именно так и годится.
человек сделал выгрузку и на автомате нажал Ctrl+s
и сразу же запустилось событие Workbook_BeforeClose, в котором сидит макрос, или не дающий сохранить этот файл с тем же названием, или просто автоматически предлагающий сохранить файл с каким-то другим названием


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЭэээ, я не совсем понял, почему "так не годится". Как раз все Ваше дальнейшее пояснение подтверждает, что именно так и годится.
человек сделал выгрузку и на автомате нажал Ctrl+s
и сразу же запустилось событие Workbook_BeforeClose, в котором сидит макрос, или не дающий сохранить этот файл с тем же названием, или просто автоматически предлагающий сохранить файл с каким-то другим названием

Автор - _Boroda_
Дата добавления - 16.03.2017 в 15:37
fairylive Дата: Четверг, 16.03.2017, 16:00 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 122
Репутация: 4 ±
Замечаний: 0% ±

Excel 2016
Сохраните шаблон в формате .xlt и все проблемы уйдут сами собой

Это гениально! Заработало и то что надо!
Меня тут уверяли что народ уже пытался до меня что-то с этим сделать. Выгружалась полная абракадабра вместо нужных данных (какой-то нечитабельный код). Оказалось что программа заточена под старый офис. Сейчас указал файл шаблона с расширением XLT и всё заработало! Спасибо! Иногда забываю что можно сделать всё проще. С макросами та же хрень. Надо было сохранять в XLS их.
 
Ответить
Сообщение
Сохраните шаблон в формате .xlt и все проблемы уйдут сами собой

Это гениально! Заработало и то что надо!
Меня тут уверяли что народ уже пытался до меня что-то с этим сделать. Выгружалась полная абракадабра вместо нужных данных (какой-то нечитабельный код). Оказалось что программа заточена под старый офис. Сейчас указал файл шаблона с расширением XLT и всё заработало! Спасибо! Иногда забываю что можно сделать всё проще. С макросами та же хрень. Надо было сохранять в XLS их.

Автор - fairylive
Дата добавления - 16.03.2017 в 16:00
Perfect2You Дата: Четверг, 16.03.2017, 16:01 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 237
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
Увы, Workbook_BeforeClose запустилось бы при "Ctrl+w", а вот если подключить еще и Workbook_BeforeSave, то будет гораздо лучше: и то, и другое.
Но, может, xlt, предложенное Pelena и проще, и корректнее?


Сообщение отредактировал Perfect2You - Четверг, 16.03.2017, 16:01
 
Ответить
СообщениеУвы, Workbook_BeforeClose запустилось бы при "Ctrl+w", а вот если подключить еще и Workbook_BeforeSave, то будет гораздо лучше: и то, и другое.
Но, может, xlt, предложенное Pelena и проще, и корректнее?

Автор - Perfect2You
Дата добавления - 16.03.2017 в 16:01
fairylive Дата: Четверг, 16.03.2017, 16:20 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 122
Репутация: 4 ±
Замечаний: 0% ±

Excel 2016
Perfect2You, спасибо за идеи! С шаблоном xlt гораздо правильнее.
PS В карму всем накидаю спасибов. Просто видимо потому что давно не появлялся на форуме не могу сделать это прямо сейчас. Не дают.
 
Ответить
СообщениеPerfect2You, спасибо за идеи! С шаблоном xlt гораздо правильнее.
PS В карму всем накидаю спасибов. Просто видимо потому что давно не появлялся на форуме не могу сделать это прямо сейчас. Не дают.

Автор - fairylive
Дата добавления - 16.03.2017 в 16:20
Мир MS Excel » Вопросы и решения » Вопросы по VBA » "Сохранить файл как" после его изменения (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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