1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| Option Explicit
Public Function sMoisAn(d As Date) As String
Dim sMsAn As String
Dim sMsAn As String
sMsAn = Format(d, "mmmm yyyy") '--- mois en toutes lettres minuscules avec accents et année en chiffres
sMsAn = Replace(sMsAn, "é", "e") '--- remplace é par e (février --> fevrier)
sMsAn = Replace(sMsAn, "û", "u") '--- remplace û par u (août --> aout)
sMoisAn = UCase(sMsAn) '--- mis en majuscules
End Function
Sub CopieMoisAvant()
Dim FDlg As FileDialog
Dim sMois As String, sMoisAvant As String
Dim sFichierMoisAn As String, sFichierMoisAnAvant As String
sMois = sMoisAn(Date) '--- mois année de ce jour
sMoisAvant = sMoisAn(DateAdd("m", -1, Date)) '--- mois année de un mois plus tôt
sFichierMoisAn = "Hdv " & sMois & ".xls"
sFichierMoisAnAvant = "Hdv " & sMoisAvant & ".xls"
Set FDlg = Application.FileDialog(msoFileDialogFilePicker)
With FDlg
.InitialView = msoFileDialogViewDetails
.Filters.Clear
.AllowMultiSelect = False
.InitialFileName = ThisWorkbook.Path & "\" & sFichierMoisAnAvant
If .Show Then
sFichierMoisAnAvant = Replace(.SelectedItems(1), sFichierMoisAn, sFichierMoisAnAvant)
If MsgBox("Copier le fichier: " & .SelectedItems(1) & vbLf & _
"sous ce nom: " & sFichierMoisAnAvant, vbYesNo, "Oui/Non") = vbYes Then
FileCopy .SelectedItems(1), sFichierMoisAnAvant
End If
End If
End With
End Sub |
Partager