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

Вход

Регистрация

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

 

= Мир MS Excel/Сохранение файла с датой и временем в имени - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Сохранение файла с датой и временем в имени
Otter Дата: Вторник, 28.08.2018, 20:38 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Всем доброго времени суток.

Здесь начало этой темы. Так как изначальный вопрос в ней закрыт, поэтому создал новую тему для продолжения доработки кода макроса.
Суть в том чтобы макрос создавал файлы резервных копий в папке исходного файла, но при каждом сохранении добавлял в имени часы и минуты.
Иногда хочется работать с каким то файлом в течении дня, машинально сохранять его копии не думая о них и в конце отобрать из полученных копий самый удачный вариант или несколько, а остальные удалить. При таком алгоритме при любом сбое Windows или из за утомления самого человека всегда будет в наличии несколько резервных копий документа со временем их создания и удачными вариантами, а труд не будет потерян.

Итак как должно все работать:
1 Если файл создан первый раз он сохраняется со своим именем
2 При втором сохранении к имени добавляется дата
3 При последующих сохранениях к дате добавляются часы и минуты сохранения

Код макроса по теме внизу под спойлером:


Сообщение отредактировал Otter - Вторник, 28.08.2018, 21:07
 
Ответить
СообщениеВсем доброго времени суток.

Здесь начало этой темы. Так как изначальный вопрос в ней закрыт, поэтому создал новую тему для продолжения доработки кода макроса.
Суть в том чтобы макрос создавал файлы резервных копий в папке исходного файла, но при каждом сохранении добавлял в имени часы и минуты.
Иногда хочется работать с каким то файлом в течении дня, машинально сохранять его копии не думая о них и в конце отобрать из полученных копий самый удачный вариант или несколько, а остальные удалить. При таком алгоритме при любом сбое Windows или из за утомления самого человека всегда будет в наличии несколько резервных копий документа со временем их создания и удачными вариантами, а труд не будет потерян.

Итак как должно все работать:
1 Если файл создан первый раз он сохраняется со своим именем
2 При втором сохранении к имени добавляется дата
3 При последующих сохранениях к дате добавляются часы и минуты сохранения

Код макроса по теме внизу под спойлером:

Автор - Otter
Дата добавления - 28.08.2018 в 20:38
_Boroda_ Дата: Вторник, 28.08.2018, 21:27 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16745
Репутация: 6534 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[vba]
Код
Sub tt()
    Dim Wb As Document
    Set Wb = ActiveDocument
    wbn = Wb.Name
    If Wb.Path = "" Then
        MsgBox "Активный файл не сохранён на жёстком диске." & Chr(10) & "" & Chr(10) & "Перед сохранением копии сохраните оригинал", vbExclamation
        Exit Sub
    End If
    put_ = Wb.Path & "\"
    dat_ = Format(Date, "yy-mm-dd")
    vrem_ = Format(Time, "hh-mm")
    fn0_ = Left(wbn, Len(wbn) - 5) 'имя файла без расширения
    If InStr(fn0_, dat_) Then 'если в имени есть сегодняшняя дата
        If Right(fn0_, 8) = dat_ Then 'если дата есть и она последняя (нет времени)
            fn_ = fn0_ & " " & vrem_
        Else
            fn_ = Left(fn0_, Len(fn0_) - 6) & " " & vrem_
        End If
    Else
        fn_ = fn0_ & "_" & dat_
    End If
    Wb.SaveAs (put_ & fn_ & ".docm")
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
[vba]
Код
Sub tt()
    Dim Wb As Document
    Set Wb = ActiveDocument
    wbn = Wb.Name
    If Wb.Path = "" Then
        MsgBox "Активный файл не сохранён на жёстком диске." & Chr(10) & "" & Chr(10) & "Перед сохранением копии сохраните оригинал", vbExclamation
        Exit Sub
    End If
    put_ = Wb.Path & "\"
    dat_ = Format(Date, "yy-mm-dd")
    vrem_ = Format(Time, "hh-mm")
    fn0_ = Left(wbn, Len(wbn) - 5) 'имя файла без расширения
    If InStr(fn0_, dat_) Then 'если в имени есть сегодняшняя дата
        If Right(fn0_, 8) = dat_ Then 'если дата есть и она последняя (нет времени)
            fn_ = fn0_ & " " & vrem_
        Else
            fn_ = Left(fn0_, Len(fn0_) - 6) & " " & vrem_
        End If
    Else
        fn_ = fn0_ & "_" & dat_
    End If
    Wb.SaveAs (put_ & fn_ & ".docm")
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 28.08.2018 в 21:27
Otter Дата: Вторник, 28.08.2018, 21:43 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
_Boroda_, Да так. Большое спасибо за оперативность.
 
Ответить
Сообщение_Boroda_, Да так. Большое спасибо за оперативность.

Автор - Otter
Дата добавления - 28.08.2018 в 21:43
  • Страница 1 из 1
  • 1
Поиск:

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