Utiliser une macro comme fonction

Bonjour,

ma requête va surement vous sembler idiote de par sa simplicité mais je bloque.

Voilà j'ai un code VBA qui me permet d'extraire des caractères d'une cellule à l'aide de la fonction Mid()

J'arrive à la faire tourner mais j'aimerai la mettre sous forme de fonction afin de l'appliquer à toute une colonne.

Pour cela j'ai utiliser Function().

J'ai ma colonne A qui est remplie avec "FAaa-XXX" où X représente des chiffres et aa l'année (Ex: FA15-155, 15 représente 2015)

La fonction doit me permettre d'extraire le "15" et de rajouter "20" devant afin d'obtenir l'année et de mettre ce résultat dans la colonne E.

Voici ma macro.

Sub FAANNEE()
Sheets("BDD FA").Activate
x = Range("A2").Select
y = Mid(ActiveCell, 3, 2)
FAANNEE = "20" & y
End Sub

Merci

Bonjour,

Tu aurais intérêt à relire les définitions des diverses procédures que l'on peut composer en VBA et ce qui les distingue...

Une procédure Function (par rapport aux autres) a la faculté de renvoyer un résultat. A ce titre, elle permet de réaliser des fonctions personnalisées utilisables de la même façon que les fonctions intégrées d'Excel.

Function FAANNEE(fa As String) As Integer
    Application.Volatile
    FAANNEE = 2000 + CInt(Mid(fa, 3, 2))
End Function

La fonction ci-dessus, à partir d'une chaîne de type FAaa-XXX renverra une valeur de type Integer : 20aa.

A2 contient : FA15-225. Tu tapes en B2 (ou ailleurs) : =FAANNEE(A2). Le résultat sera : 2015.

La première ligne est une commande permettant la mise à jour du résultat lors du recalcul, comme pour toute autre fonction d'Excel.

Cordialement.

Bonjour,

je ne suis encore qu'un débutant en VBA donc je ne connais pas toutes les procédures effectivement.

J'essaye d'écrire en utilisant ma logique et les quelques bases que j'ai mais pour les nouvelles choses, il se peut que je bloque.

Mais merci de ton aide, mon problème est résolu

Rechercher des sujets similaires à "utiliser macro comme fonction"