Страницы: 1
RSS
Появился запрос на сохранение файла
 
Здравствуйте форумчане.

Помогите пожалуйста новичку разобраться с настройками Excel 2013.
Пока лазил в настройках Excel. пробовал вставлять макросы. надстройки.
В общем куда-то ткнул и теперь после каждого закрытия документа (просто открыл/закрыл  - НИЧЕГО не меняя) - вылазит окно с предложением сохранить документ файлов с расширением X.xlsm

Подскажите пожалуйста как вернуть настройку обратно. Чтобы если открываю файл и закрываю его БЕЗ ИЗМЕНЕНИЙ не выпадало это окно.

Заранее Благодарен.
 
Цитата
vlad_d написал: пробовал вставлять макросы...с расширением X.xlsm
смотрите какие макросы куда "навставляли". Или покажите файл тут - на словах сложно сказать, Да и 2013-го нет
Согласие есть продукт при полном непротивлении сторон
 
Нашел ячейку из-за которой каждый раз Excel 2013 просит сохраниться: D1
Это после манипуляции - не знай где.

Вложил файл.
На работе "старый файл" нормально закрывается - а этот "новый" после экспериментов сохраниться просит каждый раз.
Что сделал - не знаю. (((
Изменено: vlad_d - 07.06.2015 11:38:25
 
D1 содержит летучую функцию СЕГОДНЯ, которая пересчитывается при любых изменеиях листа, при открытии книги.
 
А там волатильная формула, потому и просит сохраниться. Уйдите от волатильности - уберите функцию СЕГОДНЯ, использовав какой-нибудь аналог. Можно воспользоваться функцией ДАТА, например. Но в таком случае придется каждый раз обновлять значение дня.
Изменено: Все_просто - 07.06.2015 11:55:50
С уважением,
Федор/Все_просто
 
Можно текущую дату подставлять при открытии книги. В модуль Эта_книга:
Код
Private Sub Workbook_Open()
    Лист3.Range("D1").Value = Date
End Sub

Лист3 - кодовое имя листа (можно посмотреть в редакторе VBA)

Если немного изменить, дата будет изменяться только при первом открытии файла в этот день:
Код
Private Sub Workbook_Open()
    With Лист3.Range("D1")
        If .Value <> Date Then .Value = Date
    End With
End Sub
 
Все_просто, Благодарю. :) А то я испугался что что-то испортил.
vikttur, Большое спасибо за ответ!!!  :)

Продолжу, что получилось:
Код вставил, но при открытии файла дата не проставляется автоматом.
Для примера продублировал лист.

С ячейки "D4" берется текст и проставляется на другие листы.
И ячейка "D4" является заглавием листа.

Если вставить этот код в в редакторе VBA:
Код
Private Sub Workbook_Open()
Лист4.Range("D1").Value = Date
End Sub

формат ячейки получается цифрами. И вместо фразы: "25 Неделя 2015 года" я получаю "42162 Неделя 2015 года" и формат ячейки не работает.
Изменено: vlad_d - 07.06.2015 12:44:37
 
Цитата
vlad_d написал: Код вставил, но при открытии файла дата не проставляется автоматом
точно В модуль Эта_книга вставили?
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
формат ячейки получается цифрами.
Не знаете, как формат ячейки установить заранее? Обязательно в коде прописывать?
 
Цитата
JeyCi написал: точно В модуль Эта_книга вставили?
Цитата
vikttur написал: Не знаете, как формат ячейки установить заранее?
В формате "Дата" нет формата чтобы был номер недели. Или я чего-то не знаю?  :oops:
Изменено: vlad_d - 07.06.2015 12:54:44
 
Вставили в модуль листа. Нужно в модуль Эта_Книга, ведь обработка не события листа, но события книги.
 
Вставил, в ЭтуКнигу - заработало.
А как быть с форматом?
 
Выделите ячейку с действующим форматом, зайдите в редактор VBA, нажмите Ctrl+G и наберите "?ActiveCell.NumberFormat" или "?ActiveCell.NumberFormatLocal".
There is no knowledge that is not power
 
Johny,
Что я делаю не так?
 
А "ENTER" нажали? :D
There is no knowledge that is not power
 
Простите Чайника без крышки. :)
Теперь нажал.
Если вставить курсор в ячейку J1 - то формат получается "основной"
Если вставить курсор в ячейку D1 - то формат получается "ДД.ММ.ГГГГ"
Если скопировать формать из ячейки J1 в D1 - получается "42162 Неделя 2015 года"
Куда еще "тыкнуть" ?
Изменено: vlad_d - 07.06.2015 16:00:18
 
Цитата
vlad_d написал: Если вставить курсор в ячейку D1 - то формат получается "ДД.ММ.ГГГГ"
вы же этого и добивались!.. - чтобы дата в D1 стала нелетучей...
зачем пытаетесь обратно дату в D1 во что-то превращать?
Цитата
vlad_d написал: Если скопировать формать из ячейки J1 в D1 - получается "42162 Неделя 2015 года"
лучше сохраните книгу до End Sub - а то, всё равно, попросит сохранения - изменения ведь произошли!...
Цитата
vlad_d написал: Куда еще "тыкнуть" ?
и можете смело закрывать книгу   8) до завтра, а завтра проверить на авто-появление новой даты (и авто-сохранение файла уже в начале работы с ним) - чтобы при закрытии не делать этого...  чего и добивались!
даже лучше так сохранить при открытии:
Код
Private Sub Workbook_Open()
Application.DisplayAlerts=False
    With Лист3.Range("D1")
        If .Value <> Date Then .Value = Date
    End With
Thisworkbook.Save
Application.DisplayAlerts=True
End Sub



Изменено: JeyCi - 07.06.2015 19:59:54
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
vlad_d: Нашел ячейку из-за которой каждый раз Excel 2013 просит сохраниться: D1 Это после манипуляции - не знай где.
как нашли, если не секрет? - тоже интересная манипуляция....
Изменено: JeyCi - 07.06.2015 19:57:45
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
JeyCi, Благодарю за отклик!   ;)
Цитата
JeyCi написал: чтобы дата в D1 стала нелетучей..
летучая - это значит обновляется от текущего времени?
Цитата
JeyCi написал: лучше сохраните книгу до End Sub
Открыть файл с VBA/ Удалить дату/ вставить код/ сохранить файл не нажимая старт в VBA? Так?
В общем что-то не выходит у меня каменный цветок...
Ссылка на запись видео (Пробы с датой.avi 15.2 МБ), что у меня получается: тут.

Цитата
JeyCi написал: как нашли, если не секрет?
Удалил все макросы, удалил (по очереди) каждый лист (а их 26 шт) открывая/закрывая файл. Так вычислил лист.
"vikttur", и "Все_просто" написали про летучюю формулу. Тут то я ячейку с датой во множестве данных в таблице и поймал! ))
Правда на все это часа 2 ушло. )))
 
Цитата
vlad_d написал: В общем что-то не выходит у меня каменный цветок...
на вашем файле:
если у вас в ячейке формула (а не значение), то вставляйте её (а не значение) макросом и сохраняйте...
(см модуль ЭтаКнига)
p.s. файл вложила - закрывается без запроса о сохранении
p.p.s форматы ячеек задавайте как обычно в xl по правой-кнопке-мыши - к макросу это не имеет отношения в данном случае... просто пример был по Дате...  - Johny показал, как изменить формат ячейки через VBEditor... но можно справляться и обычными средствами ...
Изменено: JeyCi - 11.06.2015 20:02:13
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Можно проще, в книгу из 1-го сообщения в модуль ЭтаКнига поместить приложенный ниже код и сохранить книгу:
Код
' Код поместить в модуль ЭтаКнига
Private Sub Workbook_Open()
  Application.OnTime Now, Me.CodeName & ".MeSaved"
End Sub
Private Sub MeSaved()
  Me.Saved = True
End Sub

Формулы при этом заменять не нужно
Изменено: ZVI - 11.06.2015 21:53:10
 
]JeyCi, ZVI, благодарю!!!
Оба способа работают!
Вопрос решен.

Всем кто откликнулся Огромная Благодарность.
Сайт то что нужно.
Страницы: 1
Читают тему
Наверх