Find ne donne pas la bonne ligne

cracos30 Messages postés 81 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 12 avril 2013 - 22 déc. 2009 à 19:09
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 23 déc. 2009 à 09:32
Bonsoir à tous,
Un truc que je ne pige pas:
Je recherche dans une plage une chaine( en l'occurence "Cent1" répétée sur les 100 1ere lignes), find me renvoie la ligne 2??
j'ai vérifié que mes cellules sont identiques, j'ai essayé avec columns(1) Pareil!
rechercheA = Range(Cells(1, 1), Cells(2826, 1)).Find("Cent" & b).Row

Une lumière, merci

8 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
22 déc. 2009 à 19:33
Salut
Essaye avec une syntaxe propre :
.Find("Cent" & CStr(b)).Row
car la concaténation de chiffres aux chaines formattent d'office en laissant un espace (pour l'éventuel signe) devant le chiffre.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cracos30 Messages postés 81 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 12 avril 2013
22 déc. 2009 à 19:57
Merci pour la réponse
Mais c'est toujours pareil. Je ne comprend pas, tout fonctionne bien pour les autres cellules suivantes. Si j'insere une ligne vide au départ il me revoie toujours 2, mais là c'est correct. On dirait que find demarre à la suite de la 1ere cellule
rechercheA = Range(Cells(2, 1), Cells(2826, 1)).Find("Cent" & CStr(b)).Row
me donne 3!
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 déc. 2009 à 20:05
Bonjour,
Comme on "voit" fort bien ce qu'est exactement b et comment une valeur lui est attribuée....
=>> j'aurais personnellement tendance à te répondre ceci : renseigne-nous avec précision (nécessaire) et tu auras une chance de recevoir une réponse précise (c'est ici évident).



____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
cracos30 Messages postés 81 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 12 avril 2013
22 déc. 2009 à 20:29
voila pour mieux voir
rechercheA = Range(Cells(1, 1), Cells(2826, 1)).Find("Cent1").Row

et dans toutes les cellules : Cent1
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 déc. 2009 à 20:44
Et quel est le résultat ?
Il n'est pas celui de la 1èere ligne de la colonne 1 contenant "Cent1" ? (en respectant la casse C majuscule et le reste en minuscules) ?
Si oui : que reproches-tu alors ?
si non : joins donc un exemple


____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
cracos30 Messages postés 81 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 12 avril 2013
23 déc. 2009 à 00:58
Le résultat est que find me renvoi la ligne 2
rechercheA = Range(Cells(2, 1), Cells(2826, 1)).Find("Cent1").Row
me renvoi la ligne 3
rechercheA = Range(Cells(3, 1), Cells(2826, 1)).Find("Cent1").Row
me renvoi la ligne 4 etc.. et comme je dois faire un offset sur la cellule de droite le résultat des recherches est faux.
et si je fais une recherche
rechercheA = Range(Cells(1, 1), Cells(2826, 1)).Find("Cent2").Row
sur:
Cent2 <<< 1ere ligne
Cent1
Cent1
Cent2
find me renvoi 4
0
cracos30 Messages postés 81 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 12 avril 2013
23 déc. 2009 à 08:21
Bon j'abandonne, Find pas top
Si je limite la recherche à la seule cellule(1,1) il me trouve bien la ligne 1
Je passe par une boucle qui fonctionne sans probleme
Merci à ceux qui m'on consacré du temps
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 déc. 2009 à 09:32
expression.Find(Quoi, Après, RechercherDans, Regarder, OrdreRecherche, SensRecherche
, RespecterCasse, RespecterNbreOctets, FormatRecherche)


utilise le paramètre mis ici en rouge (force la main)
utilise Range("A1:A2826") plutôt quer Range(Cells(1, 1), Cells(2826, 1)).


____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
Rejoignez-nous