Déjà, A2 sans le mettre dans un Range, ce n'est pas une référence de cellule mais une variable.
Pour éviter ce type d'erreur, prend l'habitude de mettre un "Option Explicit" avant tes codes ou, mieux, fais en sorte que ça se mette tout seul : Menu Outils > Options > Cocher "Déclaration de variables obligatoire"
Pour en revenir à ton affaire, tu ne peux pas passer par Formula puisque techniquement la formule d'une cellule ne peut pas faire référence à la valeur de cette cellule.
Il faudrait donc placer le résultat dans une autre cellule.
Et dans ce cas, il vaudrait mieux utiliser FormulaLocal qui te permettrait de mettre directement la formule que je t'ai donnée.
Lire ça : https://docs.microsoft.com/fr-fr/off...e.formulalocal
Mais je ne vois pas trop l'intérêt que ça aurait de développer une macro pour ça.
Le plus simple serait de mettre directement la valeur dans la cellule :
Range("A2").Value = DateSerial(Left(Range("A2"), 4), Mid(Range("A2"), 5, 2), Mid(Range"A2"), 7, 2))
Sans oublier (quelle que soit la solution retenue) de passer ta cellule au format date avec la propriété NumberFormat du Range.
Lire ça : https://msdn.microsoft.com/fr-fr/lib...1(v=office.15)
Partager