didus
XLDnaute Occasionnel
Bonjour le forum,
Beaucoup de posts sur le sujet mais apparemment aucun avec une solution directe à ce problème.
En m'inspirant de plusieurs réponses, j'ai trouvé une solution à mon soucis:
Objet:
création d'un rapport contenant des champs modifiés par une macro:
lors des modifs, les variables RF et RI (string publiques) sont valorisées par les données initiales et modifiées
refs liées à l'ancien champ en col F(RF) puis refs liées au nouveau champ en col I(RI)
variables textes ou dates suivant le type de données modifiées
problème:
si le jour d'une cellule date modifiée est inférieur ou égal à 12, les valeurs de jour et de mois sont inversées
d'où un rapport compliqué à utiliser, appelé aussi rapport "AmoitiéFô"
Solution pour ce cas d'usage de variable de type string:
Ce petit ajout qui copie les valeurs en colonne F et I permet de copier le format texte si le format date retourne une erreur.
Si cela peut servir à d'autres j'en serai ravi, j'ai tellement trouvé de solutions sur ce forum!
A adapter à vos besoins bien entendu.
Amicalement
Beaucoup de posts sur le sujet mais apparemment aucun avec une solution directe à ce problème.
En m'inspirant de plusieurs réponses, j'ai trouvé une solution à mon soucis:
Objet:
création d'un rapport contenant des champs modifiés par une macro:
lors des modifs, les variables RF et RI (string publiques) sont valorisées par les données initiales et modifiées
refs liées à l'ancien champ en col F(RF) puis refs liées au nouveau champ en col I(RI)
variables textes ou dates suivant le type de données modifiées
problème:
si le jour d'une cellule date modifiée est inférieur ou égal à 12, les valeurs de jour et de mois sont inversées
d'où un rapport compliqué à utiliser, appelé aussi rapport "AmoitiéFô"
Solution pour ce cas d'usage de variable de type string:
' cas des dates avec le risque d'inversion des jours et mois si jour<13
' on applique le format date, en cas d'erreur on copie simplement la cellule
On Error Resume Next
Sheets("rapport").Range("F" & ligrapport) = DateValue(RF)
If Err <> 0 Then
Err = 0
Sheets("rapport").Range("F" & ligrapport) = RF
End If
On Error Resume Next
Sheets("rapport").Range("I" & ligrapport) = DateValue(RI)
If Err <> 0 Then
Err = 0
Sheets("rapport").Range("I" & ligrapport) = RI
End If
ligrapport = ligrapport + 1
Ce petit ajout qui copie les valeurs en colonne F et I permet de copier le format texte si le format date retourne une erreur.
Si cela peut servir à d'autres j'en serai ravi, j'ai tellement trouvé de solutions sur ce forum!
A adapter à vos besoins bien entendu.
Amicalement