Fonction FIND sous VBA [Résolu/Fermé]

Signaler
Messages postés
21
Date d'inscription
lundi 4 janvier 2010
Statut
Membre
Dernière intervention
24 septembre 2013
-
 alex38 -
Bonjour,
je cherche à faire une recherche de texte "STRICTE" dans une plage de données en VBA
ci-dessous mon code qui ne donne pas le resultat voulu :

CodeArticle = "essai"
With Sheets("feuil1").Columns("A:A")
Set trouve = .Find(CodeArticle, LookIn:=xlValues)
End With
If Not trouve Is Nothing Then
Ligne = Selection.Find(CodeArticle, LookIn:=xlValues).Row
End If

si dans colonne A de feuil1 j'ai la liste suivante :
Range("A1") = essai1
Range("A2") = essai2
Range("A3") = essai3
Range("A4") = essai
Range("A5") = essai4
Range("A6") = essai5

la valeur Ligne=1 alors que je voudrais trouver 4

comment puis je faire ?

merci d'avance

3 réponses

Messages postés
12261
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
19 février 2020
2 341
Bonjour à tous,
Pour une recherche "stricte", vous pouvez utiliser la fonction Match. Exemple de Silkyroad :

Sub test()
Dim Cible As String
Dim x As Long
 
Cible = "essai"
 
On Error Resume Next
x = Application.Match(Cible, Worksheets("Feuil1").Columns("A:A"), 0)
 
If x = 0 Then
    MsgBox "Valeur " & Cible & " non trouvée."
    Else
    MsgBox "Valeur " & Cible & " trouvée dans la ligne: " & x
End If
End Sub

2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 86790 internautes nous ont dit merci ce mois-ci

lermite222
Messages postés
8715
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 067
bonjour pijaku,
Bien trouver, j'y ai pas pensé...
A+
pijaku
Messages postés
12261
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
19 février 2020
2 341
Salut lermite222,
Je n'y songeais pas non plus... Lorsque j'ai consulté ce message la première fois, tu n'étais pas encore passé... J'ai cherché sur Internet car le "stricte" me turlupinait... Et voilà que je suis retombé sur un "classique" du genre.
Bonne fêtes de fin d'année à toi et tes proches.
A+
fonctionne super! merci pika
Messages postés
8715
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 067
Bonjour,
Les données doivent êtres mise par ordre alphabétique.
Et tu peu remplacer ton 2èm Find par..
    Rows(Trouve.Row).Select

A+
Messages postés
21
Date d'inscription
lundi 4 janvier 2010
Statut
Membre
Dernière intervention
24 septembre 2013
1
merci à tous.
j'ai trouvé une autre solution avec la fonction find! il suffit d'ajouter l'argument suivant dans la syntaxe

With Sheets("feuil1").Columns("A:A")
Set trouve = .Find(CodeArticle, LookIn:=xlValues,LookAt:=xlWhole)
End With
lermite222
Messages postés
8715
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 067
Bravo et..
Merci, ça nous permet de nous remettre en mémoire certaines solutions qui nous ont échaper.
(Ont peu pas tout mémoriser,(y a tellement de solutions))
A+
kurth
Messages postés
21
Date d'inscription
lundi 4 janvier 2010
Statut
Membre
Dernière intervention
24 septembre 2013
1
le principal c'est de trouver de l'aide et des solutions...
et surtout de les partager !