Re : Changement de dates suivant le mois
Es-que cette macro pourrait m'aider???
Passer un classeur du calendrier 1904 au calendrier 1900
Attribute VB_Name = "Calendrier1900_1904"
Sub Change_Calendrier_Mais_Conserve_Dates()
'mpfe Thomas Corvaisier
'Passage Mac (en Calendrier 1904) --> PC (Calendrier 1900)
'"Soit ("...") tu gardes le calendrier 1904 pour tous
'les classeurs liés aux classeurs Mac.
'Soit tu veux tout faire passer au calendrier 1900, et dans ce cas il
'faut aussi convertir toutes tes dates en leur ajoutant 1462 jours.
'Voici une macro qui fait ça :
Const Répertoire As String = "C:\temp\" 'à adapter...
Dim I As Integer
Dim Feuille As Worksheet
Dim Cellule As Range, Plage As Range
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
With Application.FileSearch
.NewSearch
.LookIn = Répertoire
.FileType = msoFileTypeExcelWorkbooks
.SearchSubFolders = False
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
For I = 1 To .FoundFiles.Count
Workbooks.Open Filename:=.FoundFiles(I), _
UpdateLinks:=False, IgnoreReadOnlyRecommended:=True
With ActiveWorkbook
.Date1904 = False
For Each Feuille In .Worksheets
On Error Resume Next
Set Plage = _
Feuille.UsedRange.SpecialCells(xlCellTypeConstants)
On Error GoTo 0
If Not (Plage Is Nothing) Then
For Each Cellule In Plage
If IsDate(Cellule) Then _
Cellule.Value = Cellule.Value + 1462
Next Cellule
Set Plage = Nothing
End If
Next Feuille
.Close True
End With
Next I
Else
MsgBox "Aucun fichier n'a été trouvé."
End If
MsgBox .FoundFiles.Count & " fichier(s) modifiés."
End With
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End Sub