bonjour,

Je débute dans VBA Excel et j'ai du mal à me dépatouiller.
J'ai un classeur qui a 2 feuilles. La feuille 1 correspond aux données, et la feuille 2 me permet de travailler sur ses données.

J'ai créé une macro dans module1. Cette macro doit me donner le nombre de strings identiques au paramètre d'une cellule.
Un exemple :
colonne X dans feuille 1
SVK
FRA
GB
SVK
FRA
GB
FRA
FRA
USA

Dans une cellule de ma feuille 2, je défini une fonction par fx = NomMacro( " FRA"). J'ai donc dans ma cellule le nombre de "FRA" qui se trouve dans la colonne X de la feuille1 soit 4.

Voici le code que j'ai développé :
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
16
17
18
19
20
21
22
23
 
Function NomMacro (ByVal  S as String) as Integer
 
dim i as integer
dim num as integer
i = 2
num = 0
'selection de la feuille 1
Worksheet("F1").Activate
'Tant que la cellule de la colonne X n'est pas vide
While Trim(ActiveSheet.Cells(i, X).Value) <> ""
'Si la valeur de la cellule est égale que S
If Cells(i, X).Value Like S Then
num = num + 1
End If
i = i + 1
Wend
Selection de la feuille 2
Worksheet("F2").Activate
'Mettre le numéro dans la cellule où il y a la fonction
Set NomMacro = num
 
End Function
Ce code ne marche pas. Dans ma cellule, j'obtiens #NOM?.
Quelqu'un pourrait m'aider à faire fonctionner cette macro?
Merci