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

Fonction find marche pas correctement sur un mot à 2 lettres

7 réponses
Avatar
dunkelzahn
Bonsoir,

J'ai un souci avec la fonction find. Jusqu'=E0 pr=E9sent, ca marchait tr=E8=
s
bien sauf que l=E0 je fais une recherche avec un mot de 2 lettres et l=E0
ca ne marche plus du tout.
J'ai essay=E9 avec la fonction rechercher de Excel et il me dit
exactement la m=EAme chose. En mettant une * la foncitond e recherche
fonctionne mais pas avec la fonction find.

Comment pourrai-je =E9viter ce probl=E8me ?

Excel 2003 avec XP SP3

7 réponses

Avatar
CAP2
Salut,

Pourrais-tu donner un exemple de recherche que tu désires faire ou
copier-coller le code que tu as mis en place et qui ne tourne pas rond ;o))
?

CAP2

"dunkelzahn" a écrit dans le message de
news:
Bonsoir,

J'ai un souci avec la fonction find. Jusqu'à présent, ca marchait très
bien sauf que là je fais une recherche avec un mot de 2 lettres et là
ca ne marche plus du tout.
J'ai essayé avec la fonction rechercher de Excel et il me dit
exactement la même chose. En mettant une * la foncitond e recherche
fonctionne mais pas avec la fonction find.

Comment pourrai-je éviter ce problème ?

Excel 2003 avec XP SP3
Avatar
dunkelzahn
Bonjour,

Merci de m'avoir répondu. La fonction find fonctionne nickel chrome
jusqu'à présent.
Je faisais une recherche sur une colonne 'nom' avec un nom "LI" (sans
les guillemets). Que ce soit avec la fonction find ou via le module de
recherche de Excel (CTRL+F), je ne trouve pas ce nom.
Par contre, si je cherche un nom de 3 lettres tel que "LIN", la
recherche trouve.
J'ai essayé en mettant une étoile dans la recherche de Excel et cela
fonctionne. Mais quand je veux le mettre dans le code, il semble non
utilisé


Voici le code actuellement utilisé :
'Dans la colonne Nom
Function RECH_FEUILLE(Feuille As Worksheet, RECH_PRENOM As String,
RECH_NOM As String, Optional NumLigneSearch As Integer, Optional
AdresseRéférence As String) As String
With Feuille.Columns(3)
'Recherche sur le nom demandé
Set c = .Find(UCase(RECH_NOM), LookIn:=xlValues)
'Si Nom trouvé
If Not c Is Nothing Then
'firstaddress == AdresseRéférence ?
firstaddress = c.Address
Do
'Si le prénom trouvé correspond à celui demandé
If UCase(RECH_PRENOM) = c.Offset(0, -1).Value Then
If c.Row = AdresseRéférence Then
Set c = .FindNext(c)
Else
RECH_FEUILLE = c.Address
Exit Function
End If
End If
Set c = .FindNext(c)
'Boucle tant que nom et prénom non trouvés et pas de
boucle infinie (firstaddress)
Loop While Not c Is Nothing And c.Address <> firstaddress
End If
End With
End Function

J'espère que ca va aider un peu plus.

Cordialement
On 9 juil, 11:16, "CAP2" wrote:
Salut,

Pourrais-tu donner un exemple de recherche que tu désires faire ou
copier-coller le code que tu as mis en place et qui ne tourne pas rond ;o ))
?

CAP2

"dunkelzahn" a écrit dans le message denews: 2ef58dc3-b2a4-4cf5-b5f3-5f5c0e5b8__BEGIN_MASK_n#9g02mG7!__...__END_ MASK_i?a63jfAD$
Bonsoir,

J'ai un souci avec la fonction find. Jusqu'à présent, ca marchait tr ès
bien sauf que là je fais une recherche avec un mot de 2 lettres et là
ca ne marche plus du tout.
J'ai essayé avec la fonction rechercher de Excel et il me dit
exactement la même chose. En mettant une * la foncitond e recherche
fonctionne mais pas avec la fonction find.

Comment pourrai-je éviter ce problème ?

Excel 2003 avec XP SP3


Avatar
CAP2
--
Salut,


Ca marche ?

CAP2
"dunkelzahn" a écrit dans le message de
news:
Bonjour,

Merci de m'avoir répondu. La fonction find fonctionne nickel chrome
jusqu'à présent.
Je faisais une recherche sur une colonne 'nom' avec un nom "LI" (sans
les guillemets). Que ce soit avec la fonction find ou via le module de
recherche de Excel (CTRL+F), je ne trouve pas ce nom.
Par contre, si je cherche un nom de 3 lettres tel que "LIN", la
recherche trouve.
J'ai essayé en mettant une étoile dans la recherche de Excel et cela
fonctionne. Mais quand je veux le mettre dans le code, il semble non
utilisé


Voici le code actuellement utilisé :
'Dans la colonne Nom
Function RECH_FEUILLE(Feuille As Worksheet, RECH_PRENOM As String,
RECH_NOM As String, Optional NumLigneSearch As Integer, Optional
AdresseRéférence As String) As String
With Feuille.Columns(3)
'Recherche sur le nom demandé
Set c = .Find(UCase(RECH_NOM), LookIn:=xlValues)
'Si Nom trouvé
If Not c Is Nothing Then
'firstaddress == AdresseRéférence ?
firstaddress = c.Address
Do
'Si le prénom trouvé correspond à celui demandé
If UCase(RECH_PRENOM) = c.Offset(0, -1).Value Then
If c.Row = AdresseRéférence Then
Set c = .FindNext(c)
Else
RECH_FEUILLE = c.Address
Exit Function
End If
End If
Set c = .FindNext(c)
'Boucle tant que nom et prénom non trouvés et pas de
boucle infinie (firstaddress)
Loop While Not c Is Nothing And c.Address <> firstaddress
End If
End With
End Function

J'espère que ca va aider un peu plus.

Cordialement
On 9 juil, 11:16, "CAP2" wrote:
Salut,

Pourrais-tu donner un exemple de recherche que tu désires faire ou
copier-coller le code que tu as mis en place et qui ne tourne pas rond
;o))
?

CAP2

"dunkelzahn" a écrit dans le message
denews:
2ef58dc3-b2a4-4cf5-b5f3-5f5c0e5b8__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$
Bonsoir,

J'ai un souci avec la fonction find. Jusqu'à présent, ca marchait très
bien sauf que là je fais une recherche avec un mot de 2 lettres et là
ca ne marche plus du tout.
J'ai essayé avec la fonction rechercher de Excel et il me dit
exactement la même chose. En mettant une * la foncitond e recherche
fonctionne mais pas avec la fonction find.

Comment pourrai-je éviter ce problème ?

Excel 2003 avec XP SP3


Avatar
dunkelzahn
Hello,

Ca fonctionne quand je mets des mots en recherche faisant plus de 3
lettres mais en dessous de 3 lettres, non.
J'ai mis mon code parce que tu l'as demandé

On 11 juil, 13:47, "CAP2" wrote:
--
Salut,

Ca marche ?

CAP2
"dunkelzahn" a écrit dans le message denews: 43ba82b4-6e78-4df9-91b4-841d025ae__BEGIN_MASK_n#9g02mG7!__...__END_ MASK_i?a63jfAD$
Bonjour,

Merci de m'avoir répondu. La fonction find fonctionne nickel chrome
jusqu'à présent.
Je faisais une recherche sur une colonne 'nom' avec un nom "LI" (sans
les guillemets). Que ce soit avec la fonction find ou via le module de
recherche de Excel (CTRL+F), je ne trouve pas ce nom.
Par contre, si je cherche un nom de 3 lettres tel que "LIN", la
recherche trouve.
J'ai essayé en mettant une étoile dans la recherche de Excel et cela
fonctionne. Mais quand je veux le mettre dans le code, il semble non
utilisé

Voici le code actuellement utilisé :
    'Dans la colonne Nom
Function RECH_FEUILLE(Feuille As Worksheet, RECH_PRENOM As String,
RECH_NOM As String, Optional NumLigneSearch As Integer, Optional
AdresseRéférence As String) As String
    With Feuille.Columns(3)
        'Recherche sur le nom demandé
        Set c = .Find(UCase(RECH_NOM), LookIn:=xlValues)
        'Si Nom trouvé
        If Not c Is Nothing Then
            'firstaddress == AdresseRéférence ?
            firstaddress = c.Address
            Do
                'Si le prénom trouvé correspond à c elui demandé
                If UCase(RECH_PRENOM) = c.Offset(0, -1) .Value Then
                    If c.Row = AdresseRéférence Then
                        Set c = .FindNext(c)
                    Else
                        RECH_FEUILLE = c.Addres s
                        Exit Function
                    End If
                End If
                Set c = .FindNext(c)
            'Boucle tant que nom et prénom non trouvés et pas de
boucle infinie (firstaddress)
            Loop While Not c Is Nothing And c.Address <> firs taddress
        End If
    End With
End Function

J'espère que ca va aider un peu plus.

Cordialement
On 9 juil, 11:16, "CAP2" wrote:



> Salut,

> Pourrais-tu donner un exemple de recherche que tu désires faire ou
> copier-coller le code que tu as mis en place et qui ne tourne pas rond
> ;o))
> ?

> CAP2

> "dunkelzahn" a écrit dans le messag e
> denews:
> 2ef58dc3-b2a4-4cf5-b5f3-5f5c0e5b8...__END_MASK_i?a63jfAD$__BEGIN_MASK_n #9g02mG7!
> Bonsoir,

> J'ai un souci avec la fonction find. Jusqu'à présent, ca marchait t rès
> bien sauf que là je fais une recherche avec un mot de 2 lettres et l à
> ca ne marche plus du tout.
> J'ai essayé avec la fonction rechercher de Excel et il me dit
> exactement la même chose. En mettant une * la foncitond e recherche
> fonctionne mais pas avec la fonction find.

> Comment pourrai-je éviter ce problème ?

> Excel 2003 avec XP SP3- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
CAP2
Salut,

désolé pour l'attente, j'ai été absent ;o)

En plus, j'ai pas de quoi t'aider, parcque je ne reproduit pas l'erreur sur
mon poste...

Quelquesoit la taille de la chaine recherchée, ça aboutit...

Fais-tu des recherches du style LI* ou plutôt *LI* ou les deux ?

Rencontres-tu ce problème avec n'importe quelle chaine recherchée ou est-ce
spécifique à une chaine ?

CAP2

"dunkelzahn" a écrit dans le message de
news:
Hello,

Ca fonctionne quand je mets des mots en recherche faisant plus de 3
lettres mais en dessous de 3 lettres, non.
J'ai mis mon code parce que tu l'as demandé

On 11 juil, 13:47, "CAP2" wrote:
--
Salut,

Ca marche ?

CAP2
"dunkelzahn" a écrit dans le message
denews:
43ba82b4-6e78-4df9-91b4-841d025ae__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$
Bonjour,

Merci de m'avoir répondu. La fonction find fonctionne nickel chrome
jusqu'à présent.
Je faisais une recherche sur une colonne 'nom' avec un nom "LI" (sans
les guillemets). Que ce soit avec la fonction find ou via le module de
recherche de Excel (CTRL+F), je ne trouve pas ce nom.
Par contre, si je cherche un nom de 3 lettres tel que "LIN", la
recherche trouve.
J'ai essayé en mettant une étoile dans la recherche de Excel et cela
fonctionne. Mais quand je veux le mettre dans le code, il semble non
utilisé

Voici le code actuellement utilisé :
'Dans la colonne Nom
Function RECH_FEUILLE(Feuille As Worksheet, RECH_PRENOM As String,
RECH_NOM As String, Optional NumLigneSearch As Integer, Optional
AdresseRéférence As String) As String
With Feuille.Columns(3)
'Recherche sur le nom demandé
Set c = .Find(UCase(RECH_NOM), LookIn:=xlValues)
'Si Nom trouvé
If Not c Is Nothing Then
'firstaddress == AdresseRéférence ?
firstaddress = c.Address
Do
'Si le prénom trouvé correspond à celui demandé
If UCase(RECH_PRENOM) = c.Offset(0, -1).Value Then
If c.Row = AdresseRéférence Then
Set c = .FindNext(c)
Else
RECH_FEUILLE = c.Address
Exit Function
End If
End If
Set c = .FindNext(c)
'Boucle tant que nom et prénom non trouvés et pas de
boucle infinie (firstaddress)
Loop While Not c Is Nothing And c.Address <> firstaddress
End If
End With
End Function

J'espère que ca va aider un peu plus.

Cordialement
On 9 juil, 11:16, "CAP2" wrote:



> Salut,

> Pourrais-tu donner un exemple de recherche que tu désires faire ou
> copier-coller le code que tu as mis en place et qui ne tourne pas rond
> ;o))
> ?

> CAP2

> "dunkelzahn" a écrit dans le message
> denews:
> 2ef58dc3-b2a4-4cf5-b5f3-5f5c0e5b8...__END_MASK_i?a63jfAD$__BEGIN_MASK_n#9g02mG7!
> Bonsoir,

> J'ai un souci avec la fonction find. Jusqu'à présent, ca marchait très
> bien sauf que là je fais une recherche avec un mot de 2 lettres et là
> ca ne marche plus du tout.
> J'ai essayé avec la fonction rechercher de Excel et il me dit
> exactement la même chose. En mettant une * la foncitond e recherche
> fonctionne mais pas avec la fonction find.

> Comment pourrai-je éviter ce problème ?

> Excel 2003 avec XP SP3- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
dunkelzahn
Hello,

Je fais des recherche sur le mot complet, soit "LI". C'est le nom
d'une personne. Son nom complet étant David Li mais chaque partie
étant mis dans une cellule.

Je viens de trouver la source de mon problème. Le nom était incrusté
avec un espace à la fin du mot. Je ne sais pas pourquoi il est là
puisque normalement je n'en mets pas. Mais il arrive des fois qu'un
espace s'incruste. Ce n'est pas la première fois que je dois gérer ce
type de souci.
Le pire étant que l'orsque je vérifie le dernier caractère dans la
cellule via un right et un asc, il n'indique pas un espace, soit un
caractère 32. Et quand je prend le nom, je passe par un target.value.
Vraiment bizarre cce truc.

Enfin, l'important reste que c'est résolu. Merci de ton aide qui m'a
permis d'avancer dans le schmilblic et trouver la solution.

On 17 juil, 10:12, "CAP2" wrote:
Salut,

désolé pour l'attente, j'ai été absent ;o)

En plus, j'ai pas de quoi t'aider, parcque je ne reproduit pas l'erreur s ur
mon poste...

Quelquesoit la taille de la chaine recherchée, ça aboutit...

Fais-tu des recherches du style LI* ou plutôt *LI* ou les deux ?

Rencontres-tu ce problème avec n'importe quelle chaine recherchée ou est-ce
spécifique à une chaine ?

CAP2

"dunkelzahn" a écrit dans le message denews: 4b364165-f5c2-4cd7-928b-3a401d66b__BEGIN_MASK_n#9g02mG7!__...__END_ MASK_i?a63jfAD$
Hello,

Ca fonctionne quand je mets des mots en recherche faisant plus de 3
lettres mais en dessous de 3 lettres, non.
J'ai mis mon code parce que tu l'as demandé

On 11 juil, 13:47, "CAP2" wrote:



> --
> Salut,

> Ca marche ?

> CAP2
> "dunkelzahn" a écrit dans le messag e
> denews:
> 43ba82b4-6e78-4df9-91b4-841d025ae...__END_MASK_i?a63jfAD$__BEGIN_MASK_n #9g02mG7!
> Bonjour,

> Merci de m'avoir répondu. La fonction find fonctionne nickel chrome
> jusqu'à présent.
> Je faisais une recherche sur une colonne 'nom' avec un nom "LI" (sans
> les guillemets). Que ce soit avec la fonction find ou via le module de
> recherche de Excel (CTRL+F), je ne trouve pas ce nom.
> Par contre, si je cherche un nom de 3 lettres tel que "LIN", la
> recherche trouve.
> J'ai essayé en mettant une étoile dans la recherche de Excel et cel a
> fonctionne. Mais quand je veux le mettre dans le code, il semble non
> utilisé

> Voici le code actuellement utilisé :
> 'Dans la colonne Nom
> Function RECH_FEUILLE(Feuille As Worksheet, RECH_PRENOM As String,
> RECH_NOM As String, Optional NumLigneSearch As Integer, Optional
> AdresseRéférence As String) As String
> With Feuille.Columns(3)
> 'Recherche sur le nom demandé
> Set c = .Find(UCase(RECH_NOM), LookIn:=xlValues)
> 'Si Nom trouvé
> If Not c Is Nothing Then
> 'firstaddress == AdresseRéférence ?
> firstaddress = c.Address
> Do
> 'Si le prénom trouvé correspond à celui demandé
> If UCase(RECH_PRENOM) = c.Offset(0, -1).Value Then
> If c.Row = AdresseRéférence Then
> Set c = .FindNext(c)
> Else
> RECH_FEUILLE = c.Address
> Exit Function
> End If
> End If
> Set c = .FindNext(c)
> 'Boucle tant que nom et prénom non trouvés et pas de
> boucle infinie (firstaddress)
> Loop While Not c Is Nothing And c.Address <> firstaddress
> End If
> End With
> End Function

> J'espère que ca va aider un peu plus.

> Cordialement
> On 9 juil, 11:16, "CAP2" wrote:

> > Salut,

> > Pourrais-tu donner un exemple de recherche que tu désires faire ou
> > copier-coller le code que tu as mis en place et qui ne tourne pas ron d
> > ;o))
> > ?

> > CAP2

> > "dunkelzahn" a écrit dans le mess age
> > denews:
> > 2ef58dc3-b2a4-4cf5-b5f3-5f5c0e5b8...__END_MASK_i?a63jfAD$__BEGIN_MASK _n#9g02mG7!
> > Bonsoir,

> > J'ai un souci avec la fonction find. Jusqu'à présent, ca marchait très
> > bien sauf que là je fais une recherche avec un mot de 2 lettres et là
> > ca ne marche plus du tout.
> > J'ai essayé avec la fonction rechercher de Excel et il me dit
> > exactement la même chose. En mettant une * la foncitond e recherche
> > fonctionne mais pas avec la fonction find.

> > Comment pourrai-je éviter ce problème ?

> > Excel 2003 avec XP SP3- Masquer le texte des messages précédents -

> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
CAP2
Je t'ai pas beaucoup aidé !

Tu as résolu ton pb, c'est l'essentiel ;o))

A plus !

CAP2

"dunkelzahn" a écrit dans le message de
news:
Hello,

Je fais des recherche sur le mot complet, soit "LI". C'est le nom
d'une personne. Son nom complet étant David Li mais chaque partie
étant mis dans une cellule.

Je viens de trouver la source de mon problème. Le nom était incrusté
avec un espace à la fin du mot. Je ne sais pas pourquoi il est là
puisque normalement je n'en mets pas. Mais il arrive des fois qu'un
espace s'incruste. Ce n'est pas la première fois que je dois gérer ce
type de souci.
Le pire étant que l'orsque je vérifie le dernier caractère dans la
cellule via un right et un asc, il n'indique pas un espace, soit un
caractère 32. Et quand je prend le nom, je passe par un target.value.
Vraiment bizarre cce truc.

Enfin, l'important reste que c'est résolu. Merci de ton aide qui m'a
permis d'avancer dans le schmilblic et trouver la solution.

On 17 juil, 10:12, "CAP2" wrote:
Salut,

désolé pour l'attente, j'ai été absent ;o)

En plus, j'ai pas de quoi t'aider, parcque je ne reproduit pas l'erreur
sur
mon poste...

Quelquesoit la taille de la chaine recherchée, ça aboutit...

Fais-tu des recherches du style LI* ou plutôt *LI* ou les deux ?

Rencontres-tu ce problème avec n'importe quelle chaine recherchée ou
est-ce
spécifique à une chaine ?

CAP2

"dunkelzahn" a écrit dans le message
denews:
4b364165-f5c2-4cd7-928b-3a401d66b__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$
Hello,

Ca fonctionne quand je mets des mots en recherche faisant plus de 3
lettres mais en dessous de 3 lettres, non.
J'ai mis mon code parce que tu l'as demandé

On 11 juil, 13:47, "CAP2" wrote:



> --
> Salut,

> Ca marche ?

> CAP2
> "dunkelzahn" a écrit dans le message
> denews:
> 43ba82b4-6e78-4df9-91b4-841d025ae...__END_MASK_i?a63jfAD$__BEGIN_MASK_n#9g02mG7!
> Bonjour,

> Merci de m'avoir répondu. La fonction find fonctionne nickel chrome
> jusqu'à présent.
> Je faisais une recherche sur une colonne 'nom' avec un nom "LI" (sans
> les guillemets). Que ce soit avec la fonction find ou via le module de
> recherche de Excel (CTRL+F), je ne trouve pas ce nom.
> Par contre, si je cherche un nom de 3 lettres tel que "LIN", la
> recherche trouve.
> J'ai essayé en mettant une étoile dans la recherche de Excel et cela
> fonctionne. Mais quand je veux le mettre dans le code, il semble non
> utilisé

> Voici le code actuellement utilisé :
> 'Dans la colonne Nom
> Function RECH_FEUILLE(Feuille As Worksheet, RECH_PRENOM As String,
> RECH_NOM As String, Optional NumLigneSearch As Integer, Optional
> AdresseRéférence As String) As String
> With Feuille.Columns(3)
> 'Recherche sur le nom demandé
> Set c = .Find(UCase(RECH_NOM), LookIn:=xlValues)
> 'Si Nom trouvé
> If Not c Is Nothing Then
> 'firstaddress == AdresseRéférence ?
> firstaddress = c.Address
> Do
> 'Si le prénom trouvé correspond à celui demandé
> If UCase(RECH_PRENOM) = c.Offset(0, -1).Value Then
> If c.Row = AdresseRéférence Then
> Set c = .FindNext(c)
> Else
> RECH_FEUILLE = c.Address
> Exit Function
> End If
> End If
> Set c = .FindNext(c)
> 'Boucle tant que nom et prénom non trouvés et pas de
> boucle infinie (firstaddress)
> Loop While Not c Is Nothing And c.Address <> firstaddress
> End If
> End With
> End Function

> J'espère que ca va aider un peu plus.

> Cordialement
> On 9 juil, 11:16, "CAP2" wrote:

> > Salut,

> > Pourrais-tu donner un exemple de recherche que tu désires faire ou
> > copier-coller le code que tu as mis en place et qui ne tourne pas rond
> > ;o))
> > ?

> > CAP2

> > "dunkelzahn" a écrit dans le message
> > denews:
> > 2ef58dc3-b2a4-4cf5-b5f3-5f5c0e5b8...__END_MASK_i?a63jfAD$__BEGIN_MASK_n#9g02mG7!
> > Bonsoir,

> > J'ai un souci avec la fonction find. Jusqu'à présent, ca marchait très
> > bien sauf que là je fais une recherche avec un mot de 2 lettres et là
> > ca ne marche plus du tout.
> > J'ai essayé avec la fonction rechercher de Excel et il me dit
> > exactement la même chose. En mettant une * la foncitond e recherche
> > fonctionne mais pas avec la fonction find.

> > Comment pourrai-je éviter ce problème ?

> > Excel 2003 avec XP SP3- Masquer le texte des messages précédents -

> - Afficher le texte des messages précédents -- Masquer le texte des
> messages précédents -

- Afficher le texte des messages précédents -