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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сохранить файл под другим именем в зависимости от календаря. (Макросы/Sub)
Сохранить файл под другим именем в зависимости от календаря.
koyaanisqatsi Дата: Вторник, 05.05.2015, 13:20 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 713
Репутация: 15 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте.

Есть файл формат имени файла: (Овощи 05.05.2015 Вторник) или (Овощи 07.05.2015 Четверг)
Хочу чтобы новый файл создавался по нажатию на одну из кнопок. Например сегодня вторник и мы работаем с файлом который называется "Овощи 05.05.2015 Вторник" мне надо создать такой же файлик но на четверг и должна изменится дата на следующий четверг.
Думал отталкиватся от текущего названия и использовать прибавку количества деней но тогда в конце месяца вылезет казус ((

Спасибо.
 
Ответить
СообщениеЗдравствуйте.

Есть файл формат имени файла: (Овощи 05.05.2015 Вторник) или (Овощи 07.05.2015 Четверг)
Хочу чтобы новый файл создавался по нажатию на одну из кнопок. Например сегодня вторник и мы работаем с файлом который называется "Овощи 05.05.2015 Вторник" мне надо создать такой же файлик но на четверг и должна изменится дата на следующий четверг.
Думал отталкиватся от текущего названия и использовать прибавку количества деней но тогда в конце месяца вылезет казус ((

Спасибо.

Автор - koyaanisqatsi
Дата добавления - 05.05.2015 в 13:20
_Boroda_ Дата: Вторник, 05.05.2015, 13:46 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[vba]
Код
Sub tt()
n_ = InputBox("Сколько дней добавить?")
d0_ = WorksheetFunction.Proper(Format(Split(ThisWorkbook.Name)(1), "DD.MM.YYYY DDDD"))
d1_ = WorksheetFunction.Proper(Format(CDate(Split(ThisWorkbook.Name)(1)) + n_, "DD.MM.YYYY DDDD"))
n1_ = Replace(ThisWorkbook.Name, d0_, d1_)
ThisWorkbook.SaveAs (ThisWorkbook.Path & "\" & n1_)
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
[vba]
Код
Sub tt()
n_ = InputBox("Сколько дней добавить?")
d0_ = WorksheetFunction.Proper(Format(Split(ThisWorkbook.Name)(1), "DD.MM.YYYY DDDD"))
d1_ = WorksheetFunction.Proper(Format(CDate(Split(ThisWorkbook.Name)(1)) + n_, "DD.MM.YYYY DDDD"))
n1_ = Replace(ThisWorkbook.Name, d0_, d1_)
ThisWorkbook.SaveAs (ThisWorkbook.Path & "\" & n1_)
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 05.05.2015 в 13:46
AndreTM Дата: Вторник, 05.05.2015, 16:19 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Не, ну дней-то там как раз надо добавлять всегда 7 :)
У Антона, как обычно, не получается правильно сформировать дату.
И я бы посоветовал забить все возможные проверки в имени файла, а то там такое бывает с именами :D

Т.е. надо:
- запомнить каталог файла
- найти в имени дату, убедиться в её корректности; префикс и суффикс запомнить
- увеличить дату на 7 дней; спросить юзера на предмет правильности новой даты и каталога сохранения; запомнить ответ
- сформировать новое имя файла (каталог+префикс+дата+суффикс)
- сделать копию текущей книги с новым именем; текущая рабочая книга должна остаться со старым именем, и активной
И да, нужно помнить, что текущая книга обычно расшарена в общий доступ, и может быть открыта не одним пользователем в этот момент...

Или я не прав? ;)
Антон, ты когда все же сделаешь "просто накопительную базу", а не кучи книг?


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Вторник, 05.05.2015, 16:21
 
Ответить
СообщениеНе, ну дней-то там как раз надо добавлять всегда 7 :)
У Антона, как обычно, не получается правильно сформировать дату.
И я бы посоветовал забить все возможные проверки в имени файла, а то там такое бывает с именами :D

Т.е. надо:
- запомнить каталог файла
- найти в имени дату, убедиться в её корректности; префикс и суффикс запомнить
- увеличить дату на 7 дней; спросить юзера на предмет правильности новой даты и каталога сохранения; запомнить ответ
- сформировать новое имя файла (каталог+префикс+дата+суффикс)
- сделать копию текущей книги с новым именем; текущая рабочая книга должна остаться со старым именем, и активной
И да, нужно помнить, что текущая книга обычно расшарена в общий доступ, и может быть открыта не одним пользователем в этот момент...

Или я не прав? ;)
Антон, ты когда все же сделаешь "просто накопительную базу", а не кучи книг?

Автор - AndreTM
Дата добавления - 05.05.2015 в 16:19
koyaanisqatsi Дата: Вторник, 19.05.2015, 14:21 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 713
Репутация: 15 ±
Замечаний: 0% ±

Excel 2010
AndreTM, ДА конечно прав.

"Не, ну дней-то там как раз надо добавлять всегда 7 " Есть два дня вторник и четверг и со вторника добавляем два дня чтобы получить четверг а с четверга добавляем пять дней чтобы получить вторник.

Каталог можно прописать в макросе но конечно было бы удобнее если бы спрашивал и запоминал, но это мелочи.

На счет правильности проверки даты не очень понятно. Компьютеру не проверить никак правильность даты, так как если у нас четверг закрыт то появляется файл на вторник и он уже актуален все эти дни. Если только он не будет проверять является ли эта дата в текущем промежутке между четвергом и вторником в соответствии с календарем. Тогда да это может работать.

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

Насчет базы.... Наверно никогда. А то что так надо ну с базой это и ежу понятно.

PS:Ща начну ковыряться. А то разрывали на части даже не до этого было....


Сообщение отредактировал koyaanisqatsi - Вторник, 19.05.2015, 14:22
 
Ответить
СообщениеAndreTM, ДА конечно прав.

"Не, ну дней-то там как раз надо добавлять всегда 7 " Есть два дня вторник и четверг и со вторника добавляем два дня чтобы получить четверг а с четверга добавляем пять дней чтобы получить вторник.

Каталог можно прописать в макросе но конечно было бы удобнее если бы спрашивал и запоминал, но это мелочи.

На счет правильности проверки даты не очень понятно. Компьютеру не проверить никак правильность даты, так как если у нас четверг закрыт то появляется файл на вторник и он уже актуален все эти дни. Если только он не будет проверять является ли эта дата в текущем промежутке между четвергом и вторником в соответствии с календарем. Тогда да это может работать.

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

Насчет базы.... Наверно никогда. А то что так надо ну с базой это и ежу понятно.

PS:Ща начну ковыряться. А то разрывали на части даже не до этого было....

Автор - koyaanisqatsi
Дата добавления - 19.05.2015 в 14:21
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сохранить файл под другим именем в зависимости от календаря. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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