Fonction find marche pas correctement sur un mot à 2 lettres

Le
dunkelzahn
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
CAP2
Le #12883431
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" 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
dunkelzahn
Le #14469641
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"
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" 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


CAP2
Le #15327441
--
Salut,


Ca marche ?

CAP2
"dunkelzahn" 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"
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" 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


dunkelzahn
Le #16328381
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"
--
Salut,

Ca marche ?

CAP2
"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 à 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"


> 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" > 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 -


CAP2
Le #16348801
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" 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"
--
Salut,

Ca marche ?

CAP2
"dunkelzahn" 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"


> 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" > 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 -


dunkelzahn
Le #16351901
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"
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" 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"


> --
> Salut,

> Ca marche ?

> CAP2
> "dunkelzahn" > 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"
> > 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" > > 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 -


CAP2
Le #16352771
Je t'ai pas beaucoup aidé !

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

A plus !

CAP2

"dunkelzahn" 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"
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" 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"


> --
> Salut,

> Ca marche ?

> CAP2
> "dunkelzahn" > 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"
> > 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" > > 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 -


Publicité
Poster une réponse
Anonyme