Probleme avec macro recherche excel
lindette
Messages postés
38
Statut
Membre
-
Polux31 Messages postés 7219 Statut Membre -
Polux31 Messages postés 7219 Statut Membre -
Bonjour,
J'ai créer une macro déclenche par crtl + h qui ouvre une boite de dialogue dans laquelle on rentre le nom à rechercher dans la colonne A (nom et prénom client)
mais j'ai un probleme si je fais une recherche sur le nom SIMON et bien il me place sur AMEDEE SIMON alors que Simon est les prénom et j'ai un autre client qui lui a pour nom SIMON (je n'ai pas de prénom) . Et moi j'aimerais vraiment qu'il fasse la rechercher par le nom et si nécessaire aprés par le prénom. Quelqu'un aurait il une petite idée?
voici ma macro
Sub recherche()
Dim rngTrouve As Range
Dim strChaine As String
strChaine = InputBox("Nom à rechercher :")
Set rngTrouve = ActiveSheet.Columns(1).Cells.Find(what:=strChaine)
If rngTrouve Is Nothing Then
MsgBox "Pas trouvé"
Else
Cells.Find(what:=strChaine).Activate
End If
Set rngTrouve = Nothing
End Sub
Merci d'avance
Linda
J'ai créer une macro déclenche par crtl + h qui ouvre une boite de dialogue dans laquelle on rentre le nom à rechercher dans la colonne A (nom et prénom client)
mais j'ai un probleme si je fais une recherche sur le nom SIMON et bien il me place sur AMEDEE SIMON alors que Simon est les prénom et j'ai un autre client qui lui a pour nom SIMON (je n'ai pas de prénom) . Et moi j'aimerais vraiment qu'il fasse la rechercher par le nom et si nécessaire aprés par le prénom. Quelqu'un aurait il une petite idée?
voici ma macro
Sub recherche()
Dim rngTrouve As Range
Dim strChaine As String
strChaine = InputBox("Nom à rechercher :")
Set rngTrouve = ActiveSheet.Columns(1).Cells.Find(what:=strChaine)
If rngTrouve Is Nothing Then
MsgBox "Pas trouvé"
Else
Cells.Find(what:=strChaine).Activate
End If
Set rngTrouve = Nothing
End Sub
Merci d'avance
Linda
A voir également:
- Probleme avec macro recherche excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Si ou excel - Guide
6 réponses
Bonjour,
C'est normal que ta recherche se place sur le premier élément trouvé. Tu fais une recherche sur une chaine de caractère contenu dans une cellule. Ce que tu demandes est un plus complexe et le fait d'avoir le nom et le prénom dans la même colonne complique encore plus la recherche. Il faudrait une fonction qui te retourne la première chaîne de caractère d'une cellule(avant le premier espace) et que tu compare ensuite au nom entré par l'utilisateur, mais les noms composés passeront au travers.
Voilà un exemple de fonction qui retourne la première chaîne de caractère, celle juste avant un espace:
Bon courage
;o)
Polux
C'est normal que ta recherche se place sur le premier élément trouvé. Tu fais une recherche sur une chaine de caractère contenu dans une cellule. Ce que tu demandes est un plus complexe et le fait d'avoir le nom et le prénom dans la même colonne complique encore plus la recherche. Il faudrait une fonction qui te retourne la première chaîne de caractère d'une cellule(avant le premier espace) et que tu compare ensuite au nom entré par l'utilisateur, mais les noms composés passeront au travers.
Voilà un exemple de fonction qui retourne la première chaîne de caractère, celle juste avant un espace:
Public Function returnPremChaine(Byval str As String) As String
Dim i As Integer
Dim lg As Integer
lg = Len(str)
For i = 1 To lg
If Mid(str,i,1) = " " Then
returnPremChaine = Mid(str,1, i - 1)
End If
Next i
End Function
Bon courage
;o)
Polux
Bonjour
merci pour ta réponse mais je n'arrive pas à l'appliquer.Je continues néanmoins à essayer...
merci encore
Lindette
merci pour ta réponse mais je n'arrive pas à l'appliquer.Je continues néanmoins à essayer...
merci encore
Lindette
bonsoir,
Voilà un exemple pour utiliser la fonction:
Bon courage
;o)
Polux
Voilà un exemple pour utiliser la fonction:
Public Sub searchName()
Dim strChaine As String
Dim i As Integer
i = 1
strChaine = InputBox("Nom à rechercher :")
With Worksheets("Feuil1")
While .Range("A" & i).Value <> " "
If strChaine = returnPremChaine(.Range("A" & i).Value) Then
.Range("A" & i).Activate
End If
i = i + 1
Wend
End Sub
Bon courage
;o)
Polux
Bonjour Polux
J ai eu quelques problemes de connexion internet mais c'est maintenant résolu. Je vais donc travaillé sur les codes que tu as eu la gentillesse de m'envoyer.
Je te tiens au courant
merci
Lindette
J ai eu quelques problemes de connexion internet mais c'est maintenant résolu. Je vais donc travaillé sur les codes que tu as eu la gentillesse de m'envoyer.
Je te tiens au courant
merci
Lindette
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question