Bonjour,

Comme expliqué dans le titre je viens de créer une fonction (qui ne marche pas ^^)
afin de passer une date du format anglais au format français.


Il s'agit en fait de recréer une formule excel

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
=SIERREUR(SI(R3;DATE(ANNEE(Q3);JOUR(Q3);MOIS(Q3));DATE(DROITE(Q3;4);GAUCHE(Q3;2);STXT(Q3;4;2)));(DATE(DROITE(Q3;4);GAUCHE(Q3;1);STXT(Q3;3;2))))
Le principe est simple, il y a trois colonnes: Q, R et S
La première est celle où l'on trouve la date en format "brut" (en Q3)
Dans la deuxième colonne, la cellule R3 où j'ai placé un "=ESTNUM(Q3)"
Enfin la troisème colonne où il y a la formule, en S3

Ici, VF est la fonction R3 et Mat la fonction Q3.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
 
Function Myopus(VF As Variant, Mat As Variant)
 
If IsError(VF) Then
 Myopus= WorksheetFunction.DateSerial(Right(Mat, 4), Left(Mat, 1), Mid(Mat, 3, 2))
  Else
 
   If VF = True Then
     Myopus= WorksheetFunction.DateSerial(Year(Mat), Day(Mat), Month(Mat))
       Else: Myopus= WorksheetFunction.DateSerial(Right(Mat, 4), Left(Mat, 2), Mid(Mat, 4, 2))
        End If
End If
 
End Function
Lorsque je lance la macro il n'y a aucun problème dans l'enchaînement des conditions mais c'est lorsqu'il à trouver le if ou else
qu'il y a alors un problème avec ma formule: erreur d'exéution 438 propriété ou méthode non gérée par cet objet.

Pouvez-vous m'aider ?

Merci beaucoup,

Myopus