Recherche dans une liste

Bonjour !
Alors voila je suis débutant en VBA et je bloque un peu sur un problème.
J'ai une liste de valeur de V1 à V50
Et j'aimerai un truc du genre :

Dim X as string
Dim Liste_Pot as range
Set Liste_Pot = Worksheets("Classeur1").Sheets("FT").Range(V1;V50)

X = Worksheets("Classeur1").Sheets("FT").Cells(2,1)
If X is in Liste_Pot Then
.....
Else
....
End If

En gros si la valeur de la cellule (2,1) du tableau 1 est dans la liste de valeur de la range(V1;V50) du tableau 2 alors ...... Sinon ....

Merci pour votre aide !

Bonjour,

Une solution possible; à la louche :

Dim X as string
Dim Liste_Pot As Range
Set Liste_Pot = Worksheets("Feuil1").Range("V1:V50")
X = Worksheets("FT").Cells(2, 1)
If WorksheetFunction.CountIf(Liste_Pot, X) > 0 Then ' si la valeur X existe au moins une fois dans la plage
    ............
Else
    ...........
End If

A+

Bonjour, ca ne marche pas, il ne trouve pas la valeur (ici : "MI6"), il passe au Else directement
Merci pour votre aide

Voici mon code pour le moment

Dim Liste_Appui As Range
Set Liste_Appui = Worksheets("FT").Range("V1:V50") 'J'ai rentrer "MI6" en V1'
Dim X As String

X = Workbooks(Nom_Classeur_Macro).Sheets("FT").Cells(Incrementation_Ligne, 2).Value 'La valeur de la cellule est MI6'
If WorksheetFunction.CountIf(Liste_Appui, X) > 0 Then
....
Else
....
End If

Mais le résultat est Else.. ?

Dans quel classeur prend on la donnée pour initialiser X ?
Dans le classeur ouvert portant le nom "Nom_Classeur_Macro" ? il faudrait alors ajouter les " " autour du nom

Dans le classeur portant le nom contenu dans la variable Nom_Classeur_Macro ?; cette variable est-elle initialisée ?

Par ailleurs,la variable Incrementation_Ligne est-elle initialisée ?

Les données en V1 et en Cells(Incrementation_Ligne, 2) sont elles rigoureusement les mêmes ? (espaces en plus, en moins ...)

joignez votre classeur si encore des soucis

A+

Nom_Classeur_Macro est initialisé
Incrémentation_Ligne est initialisé et ici vaut 2. La cellule est donc Cells(2, 2) = B2. La valeur en B2 est "MI6" sans les guillemets et sans espace
J'ai inscrit en V1 "MI6" sans les guillemets et sans espace

Je peut vous joindre le tableau mais dans ma demande j'ai extrêmement simplifier le code sur la syntaxe qui m'intéresse, car le code est plutôt complexe et comme je suis débutant il est écrit "en dur" et donc je n'ai pas optimiser la lectures..

4classeur1.xlsm (157.62 Ko)

Pas trouvé de code approchant dans les 3 modules...

après avoir inséré "M16" (sans les guillemets) en B2 de la feuille FT ,et rajout d'un commandbutton activeX sur la feuille FT avec le code suivant:

Private Sub CommandButton1_Click()
Dim Liste_Appui As Range, X As String, Incrementation_Ligne As Integer
Set Liste_Appui = Worksheets("FT").Range("V1:V50") 'J'ai rentrer "MI6" en V1'

Incrementation_Ligne = 2
X = Worksheets("FT").Cells(Incrementation_Ligne, 2).Value ' valeur de la cellule B2 = MI6'

If WorksheetFunction.CountIf(Liste_Appui, X) > 0 Then
    MsgBox "OK"
Else
    MsgBox "NOK"
End If
End Sub

on a bien le message : OK

A+

J'ai vérifier avec ce que tu m'a mis et j'obtient ça

"Run time error 9
Sub script Out of range"

sur la ligne :

X = Worksheets("FT").Cells(Incrementation_Ligne, 2).Value

Sur quel classeur ? Surement pas le classeur joint.

les seules erreurs possibles sur la ligne en question seraient que :

-soit la feuille FT n'existe pas

-soit la variable Incrementation_Ligne vaut 0 ou plus de 1.048.576

C'est bon j'ai régler le soucis mais j'ai une autre erreur maintenant que je poste sur un nouveau post car ce sujet est résolu
Merci beaucoup de ton aide

Rechercher des sujets similaires à "recherche liste"