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

Вход

Регистрация

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

 

= Мир MS Excel/Сохранение по адресу в соответствии с датой - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сохранение по адресу в соответствии с датой (Макросы/Sub)
Сохранение по адресу в соответствии с датой
ant6729 Дата: Воскресенье, 16.07.2017, 17:54 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 356
Репутация: -6 ±
Замечаний: 60% ±

Excel 2010
Добрый день, хочу сохранять документ в папку. Давно написал код. Но сейчас руки дошли дописать.

Есть директория.

[vba]
Код
ChDir "G:\"
      ActiveWorkbook.SaveAs Filename:="G:\Вася\Петя\Катя\2017\Июль\12.07\Калькуляция\" & n & ".xlsx", FileFormat:= _
          xlOpenXMLWorkbook, CreateBackup:=False
[/vba]

Я хочу 2017\Июль\12.07 заменить на sl автоматически, а не менять руками дату в коде.
Поэтому накалякал сейчас:

[vba]
Код
Sub fff ()

'LV1 = Format(Now, "yyyy")
'LV2 = Format(Now, "mmmm")
'LV3 = Format(Now, "dd")
'LV4 = Format(Now, "mm")

m = Format(Now, "yyyy") & "\" & Format(Now, "mmmm") & "\" & Format(Now + 1, "dd") & "." & Format(Now, "mm")

msm = Format(Now, "yyyy") & "\" & Format(Now, "mmmm") & "\" & Format(Now + 2, "dd") & "." & Format(Now, "mm")

Select Case Weekday(Now())

    Case vbMonday

    sl = m

    Case vbTuesday
    
    sl = m
    
    Case vbWednesday
    
    sl = m
   
    Case vbThursday
    
    sl = m
    
    Case vbFriday
    
    sl = m
   
    Case vbSaturday
    
    sl = msm
    
    Case vbSunday
    
    sl = m
    
End Select

End Sub
[/vba]

И получилось
[vba]
Код
ChDir "G:\"
      ActiveWorkbook.SaveAs Filename:="G:\Вася\Петя\Катя\sl\Калькуляция\" & n & ".xlsx", FileFormat:= _
          xlOpenXMLWorkbook, CreateBackup:=False
[/vba]

И кидает мне ошибку.

Подскажите, пожалуйста, как сделать, чтобы часть "датовой" директории заменялась на переменную? Это возможно?
Главное, чтобы сохранялось самостоятельно по дате. Реализация решения может быть совершенно иной. Будет интересно посмотреть любой вариант.


Сообщение отредактировал ant6729 - Воскресенье, 16.07.2017, 18:45
 
Ответить
СообщениеДобрый день, хочу сохранять документ в папку. Давно написал код. Но сейчас руки дошли дописать.

Есть директория.

[vba]
Код
ChDir "G:\"
      ActiveWorkbook.SaveAs Filename:="G:\Вася\Петя\Катя\2017\Июль\12.07\Калькуляция\" & n & ".xlsx", FileFormat:= _
          xlOpenXMLWorkbook, CreateBackup:=False
[/vba]

Я хочу 2017\Июль\12.07 заменить на sl автоматически, а не менять руками дату в коде.
Поэтому накалякал сейчас:

[vba]
Код
Sub fff ()

'LV1 = Format(Now, "yyyy")
'LV2 = Format(Now, "mmmm")
'LV3 = Format(Now, "dd")
'LV4 = Format(Now, "mm")

m = Format(Now, "yyyy") & "\" & Format(Now, "mmmm") & "\" & Format(Now + 1, "dd") & "." & Format(Now, "mm")

msm = Format(Now, "yyyy") & "\" & Format(Now, "mmmm") & "\" & Format(Now + 2, "dd") & "." & Format(Now, "mm")

Select Case Weekday(Now())

    Case vbMonday

    sl = m

    Case vbTuesday
    
    sl = m
    
    Case vbWednesday
    
    sl = m
   
    Case vbThursday
    
    sl = m
    
    Case vbFriday
    
    sl = m
   
    Case vbSaturday
    
    sl = msm
    
    Case vbSunday
    
    sl = m
    
End Select

End Sub
[/vba]

И получилось
[vba]
Код
ChDir "G:\"
      ActiveWorkbook.SaveAs Filename:="G:\Вася\Петя\Катя\sl\Калькуляция\" & n & ".xlsx", FileFormat:= _
          xlOpenXMLWorkbook, CreateBackup:=False
[/vba]

И кидает мне ошибку.

Подскажите, пожалуйста, как сделать, чтобы часть "датовой" директории заменялась на переменную? Это возможно?
Главное, чтобы сохранялось самостоятельно по дате. Реализация решения может быть совершенно иной. Будет интересно посмотреть любой вариант.

Автор - ant6729
Дата добавления - 16.07.2017 в 17:54
Udik Дата: Воскресенье, 16.07.2017, 18:24 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
По обрезкам кода трудно понять где ошибка. Ну а теоретически перед записью неплохо проверить наличие папки куда собрались писать. Конструкция с выбором вообще загадочна, зачем она нужна?


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Воскресенье, 16.07.2017, 18:27
 
Ответить
СообщениеПо обрезкам кода трудно понять где ошибка. Ну а теоретически перед записью неплохо проверить наличие папки куда собрались писать. Конструкция с выбором вообще загадочна, зачем она нужна?

Автор - Udik
Дата добавления - 16.07.2017 в 18:24
ant6729 Дата: Воскресенье, 16.07.2017, 18:40 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 356
Репутация: -6 ±
Замечаний: 60% ±

Excel 2010
Все оно сохраняет. Сохраняет практически. Потому что для каждого дня создается новая папка и туда сохраняется документ.
 
Ответить
СообщениеВсе оно сохраняет. Сохраняет практически. Потому что для каждого дня создается новая папка и туда сохраняется документ.

Автор - ant6729
Дата добавления - 16.07.2017 в 18:40
ant6729 Дата: Воскресенье, 16.07.2017, 18:43 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 356
Репутация: -6 ±
Замечаний: 60% ±

Excel 2010
Чтобы в эту новую папку с новой датой сохранялся документ, нужно постоянно менять название директории в коде руками..А мне нужно, чтобы это было автоматически.
 
Ответить
СообщениеЧтобы в эту новую папку с новой датой сохранялся документ, нужно постоянно менять название директории в коде руками..А мне нужно, чтобы это было автоматически.

Автор - ant6729
Дата добавления - 16.07.2017 в 18:43
_Boroda_ Дата: Воскресенье, 16.07.2017, 18:53 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11659
Репутация: 4831 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А так?
[vba]
Код
ActiveWorkbook.SaveAs Filename:="G:\Вася\Петя\Катя\" & sl & "\Калькуляция\" & n & ".xlsx"
[/vba]
B Select Case там не нужен
И обратите внимание, что 31 июля будет сохраняться в папку 2017\Июль\32.07


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА так?
[vba]
Код
ActiveWorkbook.SaveAs Filename:="G:\Вася\Петя\Катя\" & sl & "\Калькуляция\" & n & ".xlsx"
[/vba]
B Select Case там не нужен
И обратите внимание, что 31 июля будет сохраняться в папку 2017\Июль\32.07

Автор - _Boroda_
Дата добавления - 16.07.2017 в 18:53
Udik Дата: Воскресенье, 16.07.2017, 18:55 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Потому что для каждого дня создается новая папка и туда сохраняется документ.

В коде не видно как создается новая папка, кстати, а если она уже есть? Поэтому и написал про проверку.
А мне нужно, чтобы это было автоматически.

И какое отношение к этому имеет Select Case? Кроме воскресенья всегда одинаковые действия, достаточно if...else


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
Сообщение
Потому что для каждого дня создается новая папка и туда сохраняется документ.

В коде не видно как создается новая папка, кстати, а если она уже есть? Поэтому и написал про проверку.
А мне нужно, чтобы это было автоматически.

И какое отношение к этому имеет Select Case? Кроме воскресенья всегда одинаковые действия, достаточно if...else

Автор - Udik
Дата добавления - 16.07.2017 в 18:55
ant6729 Дата: Воскресенье, 16.07.2017, 19:40 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 356
Репутация: -6 ±
Замечаний: 60% ±

Excel 2010
Boroda, спасибо, но сохраняет в папку только до " & sl & " т.е. до папки "2017"

В коде не видно как создается новая папка, кстати, а если она уже есть? Поэтому и написал про проверку.


Так я её каждый день и делаю руками!! А потом в коде меняю к этой новой папке путь. И я это хочу уже прекратить. Пытаюсь.

B Select Case там не нужен
Не знаю... может и не нужен
И обратите внимание, что 31 июля будет сохраняться в папку 2017\Июль\32.07
Это да... спасибо... предугадали... я не продумал..
Пока, теоретически воспользуюсь кодом, которым я это делал раньше... А по хорошему тоже нужно будет посидеть подумать, как прописать условие с последним днем месяца...


Сообщение отредактировал ant6729 - Воскресенье, 16.07.2017, 19:44
 
Ответить
СообщениеBoroda, спасибо, но сохраняет в папку только до " & sl & " т.е. до папки "2017"

В коде не видно как создается новая папка, кстати, а если она уже есть? Поэтому и написал про проверку.


Так я её каждый день и делаю руками!! А потом в коде меняю к этой новой папке путь. И я это хочу уже прекратить. Пытаюсь.

B Select Case там не нужен
Не знаю... может и не нужен
И обратите внимание, что 31 июля будет сохраняться в папку 2017\Июль\32.07
Это да... спасибо... предугадали... я не продумал..
Пока, теоретически воспользуюсь кодом, которым я это делал раньше... А по хорошему тоже нужно будет посидеть подумать, как прописать условие с последним днем месяца...

Автор - ant6729
Дата добавления - 16.07.2017 в 19:40
ant6729 Дата: Воскресенье, 16.07.2017, 20:13 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 356
Репутация: -6 ±
Замечаний: 60% ±

Excel 2010
еще раз попробовал... сохраняет в G:.....2017\Июль.. дальше пока не двигается...


Сообщение отредактировал ant6729 - Воскресенье, 16.07.2017, 20:14
 
Ответить
Сообщениееще раз попробовал... сохраняет в G:.....2017\Июль.. дальше пока не двигается...

Автор - ant6729
Дата добавления - 16.07.2017 в 20:13
_Boroda_ Дата: Воскресенье, 16.07.2017, 20:25 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11659
Репутация: 4831 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
У меня вот так нормально работает
[vba]
Код
Sub fff()
m = Format(Now, "yyyy") & "\" & Format(Now, "mmmm") & "\" & Format(Now, "dd") & "." & Format(Now, "mm")
sl = m
n = "fffddd"
nnn = "D:\Стереть_7\" & sl & "\Калькуляция\" & n & ".xlsx"
'ChDir "D:\Стереть_7\" & sl & "\Калькуляция"
ActiveWorkbook.SaveAs Filename:=nnn ', FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
End Sub
[/vba]
Попробуйте вместо точки & "." & писать что-то другое. Например, нижнее подчеркивание. Но, еще раз, у меня работает.
Кстати, как следует проверьте - полностью ли совпадает путь начиная с даты


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеУ меня вот так нормально работает
[vba]
Код
Sub fff()
m = Format(Now, "yyyy") & "\" & Format(Now, "mmmm") & "\" & Format(Now, "dd") & "." & Format(Now, "mm")
sl = m
n = "fffddd"
nnn = "D:\Стереть_7\" & sl & "\Калькуляция\" & n & ".xlsx"
'ChDir "D:\Стереть_7\" & sl & "\Калькуляция"
ActiveWorkbook.SaveAs Filename:=nnn ', FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
End Sub
[/vba]
Попробуйте вместо точки & "." & писать что-то другое. Например, нижнее подчеркивание. Но, еще раз, у меня работает.
Кстати, как следует проверьте - полностью ли совпадает путь начиная с даты

Автор - _Boroda_
Дата добавления - 16.07.2017 в 20:25
ant6729 Дата: Воскресенье, 16.07.2017, 20:27 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 356
Репутация: -6 ±
Замечаний: 60% ±

Excel 2010
Не понимаю...

2017 и Июль видит, а 17.07 нет...

Т.е. [vba]
Код
Format(Date + 1, "dd/mm")
[/vba] в MsgBox показывает 17.07... папка называется 17.07... но до нее почему - то файл не доносит...кидает на полпути)
 
Ответить
СообщениеНе понимаю...

2017 и Июль видит, а 17.07 нет...

Т.е. [vba]
Код
Format(Date + 1, "dd/mm")
[/vba] в MsgBox показывает 17.07... папка называется 17.07... но до нее почему - то файл не доносит...кидает на полпути)

Автор - ant6729
Дата добавления - 16.07.2017 в 20:27
ant6729 Дата: Воскресенье, 16.07.2017, 20:27 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 356
Репутация: -6 ±
Замечаний: 60% ±

Excel 2010
Попробуйте вместо точки & "." & писать что-то другое. Например, нижнее подчеркивание. Но, еще раз, у меня работает.
Кстати, как следует проверьте - полностью ли совпадает путь начиная с даты

Сейчас еще раз гляну, ок
 
Ответить
Сообщение
Попробуйте вместо точки & "." & писать что-то другое. Например, нижнее подчеркивание. Но, еще раз, у меня работает.
Кстати, как следует проверьте - полностью ли совпадает путь начиная с даты

Сейчас еще раз гляну, ок

Автор - ant6729
Дата добавления - 16.07.2017 в 20:27
ant6729 Дата: Воскресенье, 16.07.2017, 21:05 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 356
Репутация: -6 ±
Замечаний: 60% ±

Excel 2010
Все работает, благодарю!! Boroda! Всем спасибо!!

[vba]
Код
Sub jjj()

m = Format(Now, "yyyy") & "\" & Format(Now, "mmmm") & "\" & Format(Now + 1, "dd") & "." & Format(Now, "mm")
msm = Format(Now, "yyyy") & "\" & Format(Now, "mmmm") & "\" & Format(Now + 2, "dd") & "_" & Format(Now, "mm")

Select Case Weekday(Now())
    Case vbMonday
    sl = m
    Case vbTuesday
    sl = m
    Case vbWednesday
    sl = m
    Case vbThursday
    sl = m
    Case vbFriday
    sl = m
    Case vbSaturday
    sl = msm
    Case vbSunday
    sl = m
End Select

nnn = "G:\блабла\блабла\блабла\" & sl & "\блабла\" & n & ".xlsx"
ActiveWorkbook.SaveAs Filename:=nnn

End sub
[/vba]

Хотя, в чем было отличие кроме & sl &, я пока не заметил... Видимо, ошибка внимания после работы.
 
Ответить
СообщениеВсе работает, благодарю!! Boroda! Всем спасибо!!

[vba]
Код
Sub jjj()

m = Format(Now, "yyyy") & "\" & Format(Now, "mmmm") & "\" & Format(Now + 1, "dd") & "." & Format(Now, "mm")
msm = Format(Now, "yyyy") & "\" & Format(Now, "mmmm") & "\" & Format(Now + 2, "dd") & "_" & Format(Now, "mm")

Select Case Weekday(Now())
    Case vbMonday
    sl = m
    Case vbTuesday
    sl = m
    Case vbWednesday
    sl = m
    Case vbThursday
    sl = m
    Case vbFriday
    sl = m
    Case vbSaturday
    sl = msm
    Case vbSunday
    sl = m
End Select

nnn = "G:\блабла\блабла\блабла\" & sl & "\блабла\" & n & ".xlsx"
ActiveWorkbook.SaveAs Filename:=nnn

End sub
[/vba]

Хотя, в чем было отличие кроме & sl &, я пока не заметил... Видимо, ошибка внимания после работы.

Автор - ant6729
Дата добавления - 16.07.2017 в 21:05
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сохранение по адресу в соответствии с датой (Макросы/Sub)
Страница 1 из 11
Поиск:

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