Страницы: 1
RSS
Определение номера недели и дня и запись в имя файла
 
Всем привет.

И снова прошу прошу помощи :)
Код
Sub PDFActiveSheet()
Dim wsA As Worksheet
Dim wbA As Workbook
Dim strTime As String
Dim strName As String
Dim strPath As String
Dim strFile As String
Dim strPathFile As String
Dim myFile As Variant
On Error GoTo errHandler
Set wbA = ActiveWorkbook
Set wsA = ActiveSheet
strTime = Format(Now(), "dd.mm.yyyy\_hh.mm")
wbA.Save
'get active workbook folder, if saved
strPath = wbA.Path
If strPath = "" Then
  strPath = Application.DefaultFilePath
End If
strPath = strPath & "\"
'replace spaces and periods in sheet name
strName = DatePart("WW", Now, vbMonday)
'create default name for savng file
strFile = strName & "_" & strTime & ".pdf"
strPathFile = strPath & strFile
'use can enter name and
' select folder for file
myFile = Application.GetSaveAsFilename _
    (InitialFileName:=strPathFile, _
        FileFilter:="PDF-????? (*.pdf), *.pdf", _
        Title:="????? ????? ? ????? ?????")
'export to PDF if a folder was selected
If myFile <> "False" Then
    wbA.PrintOut ActivePrinter:="Microsoft Print to PDF", PrintToFile:=True, PrToFileName:=strFile
    'confirmation message with file info
    MsgBox "PDF-????? ??????: " _
      & vbCrLf _
      & myFile
End If
exitHandler:
    Exit Sub
errHandler:
    MsgBox "?? ??????? ??????? PDF-?????"
    Resume exitHandler
End Sub

Хочу научить сохранять файл с именем в формате неделя - день недели, получилось только научить сохранять номер недели.
То есть необходимо, чтобы было в следующем виде: W08-2, W14-3 и т.п. 1 - пн, 2 - вт, 3 - чт. и так далее. Подскажите, пожалуйста, это возможно?
 
Breathe of fate, перекопируйте код с включённой RU-раскладкой.
 
Апострофф,
это имеет отношение к моему вопросу? :) Там просто написано кириллицей из серии "Выбор папки" и "PDF-отчёт".
 
Код
Sub PDFActiveSheet()
Dim wsA As Worksheet
Dim wbA As Workbook
Dim strTime As String
Dim strName As String
Dim strPath As String
Dim strFile As String
Dim strPathFile As String
Dim myFile As Variant
On Error GoTo errHandler
Set wbA = ActiveWorkbook
Set wsA = ActiveSheet
strTime = Format(Now(), "dd.mm.yyyy\_hh.mm")
wbA.Save
'get active workbook folder, if saved
strPath = wbA.Path
If strPath = "" Then
  strPath = Application.DefaultFilePath
End If
strPath = strPath & "\"
'replace spaces and periods in sheet name
strName = DatePart("WW", Now, vbMonday)
Dim strWd As String
strWd = Weekday(Date, vbMonday)
strName = strName & "-" & strWd
'create default name for savng file
strFile = strName & "_" & strTime & ".pdf"
strPathFile = strPath & strFile
'use can enter name and
' select folder for file
'myFile = Application.GetSaveAsFilename _
'    (InitialFileName:=strPathFile, _
'        FileFilter:="PDF-????? (*.pdf), *.pdf", _
'        Title:="????? ????? ? ????? ?????")
''export to PDF if a folder was selected
'If myFile <> "False" Then
'    wbA.PrintOut ActivePrinter:="Microsoft Print to PDF", PrintToFile:=True, PrToFileName:=strFile
'    'confirmation message with file info
'    MsgBox "PDF-????? ??????: " _
'      & vbCrLf _
'      & myFile
'End If
exitHandler:
    Exit Sub
errHandler:
    MsgBox "?? ??????? ??????? PDF-?????"
    Resume exitHandler
End Sub

С раскладкой было бы удобнее, но можно и без неё.
 
Цитата
МатросНаЗебре написал:
Dim strWd As StringstrWd = Weekday(Date, vbMonday)strName = strName & "-" & strWd
МатросНаЗебре написал:
Код
Dim strWd As String
strWd = Weekday(Date, vbMonday)
strName = DatePart("WW", Now, vbMonday)
strName = strName & "-" & strWd
Спасибо, мил человек :)

А возможно добавлять автоматически "0", если номер недели до 10? Чтобы формал был не W8-1, а W08-1? А двухзначные номера как обычно W11, W15 и т.п.
Изменено: Breathe of fate - 19.02.2020 11:12:33
 
Код
strWd = Format(Weekday(Date, vbMonday),"00")
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Это для дней, а я говорил о неделе :)
 
Код
right("0" & DatePart("WW", Now, vbMonday),2)
 
Цитата
Breathe of fate написал:
я говорил о неделе
т.е. применить к нужному числу Format вообще никак не получается? Не такой уж сложный вроде алгоритм - берем число и пихаем его в Format. Попробовали хоть что-то сами-то? Или задав вопрос даже не пытаетесь разбираться в ответах и применить по образу и подобию?
Код
strName = Format(DatePart("WW", Now, vbMonday),"00")
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Апострофф написал:  Breathe of fate , перекопируйте код с включённой RU-раскладкой.
Цитата
Breathe of fate написал: это имеет отношение к моему вопросу?
Это просто уважение к форуму, имхо.
 
Цитата
МатросНаЗебре написал:right("0" & DatePart("WW", Now, vbMonday),2)
работает. Спасибо :)

Цитата
Дмитрий(The_Prist) Щербаков написал: Попробовали хоть что-то сами-то?
Конечно же я пробовал, в противном случае бы не спрашивал. Но, по ходу я где-то что-то не туда дописал или у меня заглючил Эксель. Короче говоря, никаких изменений в своём коде при добавлении Format я не получил. Однако,
Цитата
Дмитрий(The_Prist) Щербаков написал:strName = Format(DatePart("WW", Now, vbMonday),"00")
сработал. Спасибо, что уделили мне время :)

Цитата
Михаил Витальевич С. написал: уважение к форуму
Разве форуму интересно что у меня там на кириллице написано? :) Удобнее разве что код смотреть, чтобы вопросы глаза не мусолили... В любом случае я ни к кому не хотел проявить неуважение.

Всем ещё раз большое спасибо за помощь!
 
Цитата
Breathe of fate написал:
Разве форуму интересно что у меня там на кириллице написано?
вот тут не скажите...Если правильно скопировать, то хоть становится ясно различаются ли объекты или там одно и тоже. В Вашем конкретном случае, конечно, вообще не критично, т.к. там только текст сообщений. Но и Вам потом может быть сложнее - код вернут с теми же иероглифами и просто скопировать себе уже не получится - надо будет переписывать весь "искоряченный" текст или переносить только нужное по частям.
Цитата
Breathe of fate написал:
по ходу я где-то что-то не туда дописал
в будущем лучше прикладывайте свои попытки - укажем что не так и в будущем Вы уже их не совершите. Это же лучше, чем так и не понимать в чем проблема была и постоянно на эти грабли наступать при необходимости?
Изменено: Дмитрий(The_Prist) Щербаков - 19.02.2020 15:54:55
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх