- Sub setRegionalDate(ByVal FirstLineIndex As Long, ByVal LastLineIndex As Long, ByVal ColIndex As Long)
- 'Version 1 : corrige pour l'intervalle spécifié toutes les dates
- 'enregistrées au format anglais (bogue d'inversion)
-
- 'Variables de traitement
- Dim myDate As Date
- Dim i As Long
-
- ' Paramètres à définir pour chaque traitement :
- ' - FirstLineIndex N° de la première ligne à traiter
- ' - LastLineIndex N° de la dernière ligne à traiter
- ' - ColIndex N° de la colonne à traiter
- ' Exemple d'utilisation :
- ' call setRegionalDate(1, 253, 2) Vérifie et corrige le format date pour l'intervalle
- ' de lignes [1, 253] de la colonne 2.
-
- 'Gestionnaire d'erreur
- On Error GoTo Except
-
- For i = FirstLineIndex To LastLineIndex
- 'Sélectionne la cellule
- Cells(i, ColIndex).Select
- With Selection
- If IsDate(.Value) Then
- 'Condition d'inversion
- If .NumberFormat = "mm/dd/yyyy" Then
- 'Mémorise la date
- myDate = .Value
- 'Transforme le type du format date
- .NumberFormat = "dd/mm/yyyy"
- 'Transforme la date en inversant les valeurs du mois et du jour
- .Value = CDate(Month(myDate) & "/" & Day(myDate) & "/" & Year(myDate))
- End If
- End If
- End With
- Next i
-
- Exit Sub
- Except:
- Call MsgBox(vbCr & "Erreur n° " & Err.Number & vbCr & vbCr & _
- Err.Description & Space(6), vbCritical + vbOKOnly, " Fonction de correction du type date")
- End Sub
- -----------------------------------------------------------------------------------------
- Sub setRegionalDate()
- 'Version 2 : corrige pour la plage sélectionnée toutes les dates
- 'enregistrées au format anglais (bogue d'inversion)
-
- 'Variables de traitement
- Dim myDate As Date
- Dim myRange As Range
- Dim i As Long, j As Long
-
- 'Gestionnaire d'erreur
- On Error GoTo Except
-
- 'Boîte de dialogue : demande de confirmation
- i = Selection.Cells.Count
- If i = 1 Then
- If MsgBox(vbCr & "Demande de confirmation" & vbCr & vbCr & _
- "Une seule cellule est sélectionnée. Confirmez votre sélection ?" & Space(6), vbQuestion + vbYesNo, _
- " Fonction de correction du type date") = vbNo Then Exit Sub
- End If
-
- For Each myRange In Selection
- If IsDate(myRange) Then
- With myRange
- 'Condition d'inversion
- If .NumberFormat = "mm/dd/yyyy" Then
- 'Mémorise la date
- myDate = .Value
- 'Transforme le type du format date
- .NumberFormat = "dd/mm/yyyy"
- 'Transforme la date en inversant les valeurs du mois et du jour
- .Value = CDate(Month(myDate) & "/" & Day(myDate) & "/" & Year(myDate))
- If Month(.Value) <> Month(myDate) Then j = j + 1
- End If
- End With
- End If
- Next
-
- 'Boîte de dialogue : nbre de dates corrigées sur nbre de cellules vérifiées
- Call MsgBox(vbCr & "Résultat du traitement :" & vbCr & vbCr & _
- j & " date(s) corrigée(s) sur " & i & " cellule(s) sélectionnée(s)." & Space(6), vbInformation + vbOKOnly, _
- " Fonction de correction du type date")
-
- Exit Sub
- Except:
- 'Boîte de dialogue : message d'erreur
- Call MsgBox(vbCr & "Erreur n° " & Err.Number & vbCr & vbCr & _
- Err.Description & Space(6), vbCritical + vbOKOnly, " Fonction de correction du type date")
- End Sub
- -----------------------------------------------------------------------------------------
Sub setRegionalDate(ByVal FirstLineIndex As Long, ByVal LastLineIndex As Long, ByVal ColIndex As Long)
'Version 1 : corrige pour l'intervalle spécifié toutes les dates
'enregistrées au format anglais (bogue d'inversion)
'Variables de traitement
Dim myDate As Date
Dim i As Long
' Paramètres à définir pour chaque traitement :
' - FirstLineIndex N° de la première ligne à traiter
' - LastLineIndex N° de la dernière ligne à traiter
' - ColIndex N° de la colonne à traiter
' Exemple d'utilisation :
' call setRegionalDate(1, 253, 2) Vérifie et corrige le format date pour l'intervalle
' de lignes [1, 253] de la colonne 2.
'Gestionnaire d'erreur
On Error GoTo Except
For i = FirstLineIndex To LastLineIndex
'Sélectionne la cellule
Cells(i, ColIndex).Select
With Selection
If IsDate(.Value) Then
'Condition d'inversion
If .NumberFormat = "mm/dd/yyyy" Then
'Mémorise la date
myDate = .Value
'Transforme le type du format date
.NumberFormat = "dd/mm/yyyy"
'Transforme la date en inversant les valeurs du mois et du jour
.Value = CDate(Month(myDate) & "/" & Day(myDate) & "/" & Year(myDate))
End If
End If
End With
Next i
Exit Sub
Except:
Call MsgBox(vbCr & "Erreur n° " & Err.Number & vbCr & vbCr & _
Err.Description & Space(6), vbCritical + vbOKOnly, " Fonction de correction du type date")
End Sub
-----------------------------------------------------------------------------------------
Sub setRegionalDate()
'Version 2 : corrige pour la plage sélectionnée toutes les dates
'enregistrées au format anglais (bogue d'inversion)
'Variables de traitement
Dim myDate As Date
Dim myRange As Range
Dim i As Long, j As Long
'Gestionnaire d'erreur
On Error GoTo Except
'Boîte de dialogue : demande de confirmation
i = Selection.Cells.Count
If i = 1 Then
If MsgBox(vbCr & "Demande de confirmation" & vbCr & vbCr & _
"Une seule cellule est sélectionnée. Confirmez votre sélection ?" & Space(6), vbQuestion + vbYesNo, _
" Fonction de correction du type date") = vbNo Then Exit Sub
End If
For Each myRange In Selection
If IsDate(myRange) Then
With myRange
'Condition d'inversion
If .NumberFormat = "mm/dd/yyyy" Then
'Mémorise la date
myDate = .Value
'Transforme le type du format date
.NumberFormat = "dd/mm/yyyy"
'Transforme la date en inversant les valeurs du mois et du jour
.Value = CDate(Month(myDate) & "/" & Day(myDate) & "/" & Year(myDate))
If Month(.Value) <> Month(myDate) Then j = j + 1
End If
End With
End If
Next
'Boîte de dialogue : nbre de dates corrigées sur nbre de cellules vérifiées
Call MsgBox(vbCr & "Résultat du traitement :" & vbCr & vbCr & _
j & " date(s) corrigée(s) sur " & i & " cellule(s) sélectionnée(s)." & Space(6), vbInformation + vbOKOnly, _
" Fonction de correction du type date")
Exit Sub
Except:
'Boîte de dialogue : message d'erreur
Call MsgBox(vbCr & "Erreur n° " & Err.Number & vbCr & vbCr & _
Err.Description & Space(6), vbCritical + vbOKOnly, " Fonction de correction du type date")
End Sub
-----------------------------------------------------------------------------------------