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
Le principe est simple, il y a trois colonnes: Q, R et S
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))))
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.
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
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
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
Partager