Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pb de recherche dans une colonne

6 réponses
Avatar
nono
bonjour,
voila je fais une recherche d une valeur avec le code vba afin de connaitre
la ligne de cette valeur dans une tableau.
j utilise cette formule
Set c = Worksheets("calcul").Range("a1:a400").Find(ab, LookIn:=xlValues)
ligne=c.row
ou ab represente une variable qui prend la valeur que je lui donne comme
ab="AMBP17A" (la recherche marche avec cette valeur)
mais voila cela ne marche pas pour toutes les valeurs comme par exemple
ab="28SAP12I" ou ab="28".
quelqu un pet m aider a trouver un code pouvant faire une recherche dans un
colonne et marchant avec n importe quelle valeur a chercher.
merci de votre aide.

6 réponses

Avatar
docm
Bonjour nono.
Sous toutes réserves, j'ai ajouté LookAt:=xlWhole à ta syntaxe.
Et ça semble fonctionner.
Gérard.

Set c = Worksheets("calcul").Range("a1:a400"). _
Find(ab, LookIn:=xlValues, LookAt:=xlWhole)

"nono" wrote in message
news:
bonjour,
voila je fais une recherche d une valeur avec le code vba afin de
connaitre

la ligne de cette valeur dans une tableau.
j utilise cette formule
Set c = Worksheets("calcul").Range("a1:a400").Find(ab, LookIn:=xlValues)
ligne=c.row
ou ab represente une variable qui prend la valeur que je lui donne
comme

ab="AMBP17A" (la recherche marche avec cette valeur)
mais voila cela ne marche pas pour toutes les valeurs comme par exemple
ab="28SAP12I" ou ab="28".
quelqu un pet m aider a trouver un code pouvant faire une recherche dans
un

colonne et marchant avec n importe quelle valeur a chercher.
merci de votre aide.




Avatar
AV
ligne = Application.Match(ab, [calcul!A1:A400], 0)

AV
Avatar
docm
Bonjour AV.

La fonction Match me cause le problème suivant:
ab = 28
ligne = Application.Match(ab, [calcul!A1:A400], 0)
fonctionne bien.

ab = "28"
ligne = Application.Match(ab, [calcul!A1:A400], 0)
ne fonctionne pas.

Gérard

"AV" wrote in message
news:#
ligne = Application.Match(ab, [calcul!A1:A400], 0)

AV




Avatar
michdenis
Bonjour docm,

Le chiffre 42 ou une chaîne de caractère "42", ce n'est pas la même chose...et c'est ce qui mystifie la fonction
"Match()".



Cependant ceci fonctionne très bien nonobstant la nuance énoncée précédemment .

On Error Resume Next
ligne = [calcul!A1:A400].Find(ab, LookIn:=xlValues, LookAt:=xlWhole).Row


Salutations!




"docm" a écrit dans le message de news:
Bonjour AV.

La fonction Match me cause le problème suivant:
ab = 28
ligne = Application.Match(ab, [calcul!A1:A400], 0)
fonctionne bien.

ab = "28"
ligne = Application.Match(ab, [calcul!A1:A400], 0)
ne fonctionne pas.

Gérard

"AV" wrote in message
news:#
ligne = Application.Match(ab, [calcul!A1:A400], 0)

AV




Avatar
AV
La fonction Match me cause le problème suivant:
ab = 28
ligne = Application.Match(ab, [calcul!A1:A400], 0)
fonctionne bien.

ab = "28"
ligne = Application.Match(ab, [calcul!A1:A400], 0)
ne fonctionne pas.


Ben justement elle marche très bien (trop bien ?) puisque, comme le fait
remarquer fort justement Denis, on ne cherche pas, dans les 2 cas, la même chose
(num ou alphanum) !
Si la plage de recherche ne contient que des valeurs numériques ou des valeurs
qui "en ont l'allure" :

ligne = Application.Match(ab * 1, [calcul!A1:A400], 0)

AV

Avatar
docm
Bonjour Denis.
Je te remercie. Je vais donc préférer la fonction Find qui est capable de
trouver
aussi bien le chiffre 42 que la chaîne de caractère "42".

Amicalement.

"michdenis" wrote in message
news:
Bonjour docm,

Le chiffre 42 ou une chaîne de caractère "42", ce n'est pas la même
chose...et c'est ce qui mystifie la fonction

"Match()".



Cependant ceci fonctionne très bien nonobstant la nuance énoncée
précédemment .


On Error Resume Next
ligne = [calcul!A1:A400].Find(ab, LookIn:=xlValues, LookAt:=xlWhole).Row


Salutations!




"docm" a écrit dans le message de
news:

Bonjour AV.

La fonction Match me cause le problème suivant:
ab = 28
ligne = Application.Match(ab, [calcul!A1:A400], 0)
fonctionne bien.

ab = "28"
ligne = Application.Match(ab, [calcul!A1:A400], 0)
ne fonctionne pas.

Gérard

"AV" wrote in message
news:#
ligne = Application.Match(ab, [calcul!A1:A400], 0)

AV