J'ai une ligne avec des adresses. Chaque adresse est compos=E9 d'un nom, d'=
une rue, d'un code postal et d'une ville. Une adresse compl=E8te par cellul=
e et sur trois lignes.
je recherche un code qui permettrait de rechercher tout ou partie d'adresse=
.
Exemple:
j'ai une adresse comme celle l=E0:
Jean MARTIN
12, rue des oliviers
75000 PARIS
Je lance la recherche sur "PARIS", je voudrai pouvoir rep=E9rer toutes les =
adresses contant le terme recherch=E9.
'Déclaration des variables dans le haut du formualaire Dim LastAdr As String Dim X As Variant Dim Debut As String
'------------------------------------------- Sub Nouvelle_Recherche()
Dim Trouve As Range Dim Adr As String
LastAdr = "": X = ""
Sheets("PFMP").Activate X = Application.InputBox(Prompt:="Valeur recherchée.", Type:=3) If X = False Then Exit Sub Call Recherche(X) End Sub
'------------------------------------------- Sub Touver_La_Prochaine_Valeur() Sheets("PFMP").Activate Call Recherche(X) End Sub
'------------------------------------------- Sub Recherche(Expression As Variant) Dim X As Variant, Trouve As Range
Sheets("PFMP").Range("C3:DC3") If LastAdr = "" Then LastAdr = "A1" Set Trouve = .Find(what:=Expression, After:=.Range(LastAdr), LookIn:=xlValues, lookat:=xlPart, SearchDirection:=xlNext, SearchOrder:=xlByColumns) If Not Trouve Is Nothing Then If LastAdr = "A1" Then Debut = Trouve.Address End If Trouve.Select If LastAdr <> "A1" And Debut = Trouve.Address Then MsgBox "Nous sommes revenus au point de départ." End If LastAdr = Trouve.Address End If End With End Sub '-------------------------------------------
'Déclaration des variables dans le haut du formualaire
Dim LastAdr As String
Dim X As Variant
Dim Debut As String
'-------------------------------------------
Sub Nouvelle_Recherche()
Dim Trouve As Range
Dim Adr As String
LastAdr = "": X = ""
Sheets("PFMP").Activate
X = Application.InputBox(Prompt:="Valeur recherchée.", Type:=3)
If X = False Then Exit Sub
Call Recherche(X)
End Sub
'-------------------------------------------
Sub Touver_La_Prochaine_Valeur()
Sheets("PFMP").Activate
Call Recherche(X)
End Sub
'-------------------------------------------
Sub Recherche(Expression As Variant)
Dim X As Variant, Trouve As Range
Sheets("PFMP").Range("C3:DC3")
If LastAdr = "" Then LastAdr = "A1"
Set Trouve = .Find(what:=Expression, After:=.Range(LastAdr),
LookIn:=xlValues, lookat:=xlPart, SearchDirection:=xlNext,
SearchOrder:=xlByColumns)
If Not Trouve Is Nothing Then
If LastAdr = "A1" Then
Debut = Trouve.Address
End If
Trouve.Select
If LastAdr <> "A1" And Debut = Trouve.Address Then
MsgBox "Nous sommes revenus au point de départ."
End If
LastAdr = Trouve.Address
End If
End With
End Sub
'-------------------------------------------
'Déclaration des variables dans le haut du formualaire Dim LastAdr As String Dim X As Variant Dim Debut As String
'------------------------------------------- Sub Nouvelle_Recherche()
Dim Trouve As Range Dim Adr As String
LastAdr = "": X = ""
Sheets("PFMP").Activate X = Application.InputBox(Prompt:="Valeur recherchée.", Type:=3) If X = False Then Exit Sub Call Recherche(X) End Sub
'------------------------------------------- Sub Touver_La_Prochaine_Valeur() Sheets("PFMP").Activate Call Recherche(X) End Sub
'------------------------------------------- Sub Recherche(Expression As Variant) Dim X As Variant, Trouve As Range
Sheets("PFMP").Range("C3:DC3") If LastAdr = "" Then LastAdr = "A1" Set Trouve = .Find(what:=Expression, After:=.Range(LastAdr), LookIn:=xlValues, lookat:=xlPart, SearchDirection:=xlNext, SearchOrder:=xlByColumns) If Not Trouve Is Nothing Then If LastAdr = "A1" Then Debut = Trouve.Address End If Trouve.Select If LastAdr <> "A1" And Debut = Trouve.Address Then MsgBox "Nous sommes revenus au point de départ." End If LastAdr = Trouve.Address End If End With End Sub '-------------------------------------------
Le fait de supprimer des with ... End with génère des erreurs de compil ation. En supprimant les "." rien ne change, l'erreur de compilation est toujours là.
J'ai donc remis le code précédent en place pour le moment.
JP
Le fait de supprimer des with ... End with génère des erreurs de compil ation.
En supprimant les "." rien ne change, l'erreur de compilation est toujours là.
J'ai donc remis le code précédent en place pour le moment.
Le fait de supprimer des with ... End with génère des erreurs de compil ation. En supprimant les "." rien ne change, l'erreur de compilation est toujours là.
J'ai donc remis le code précédent en place pour le moment.
JP
MichD
Dim LastAdr As String Dim X As Variant Dim Debut As String
'------------------------------------------- Sub Nouvelle_Recherche()
Dim Trouve As Range Dim Adr As String
LastAdr = "": X = ""
'Sheets("PFMP").Activate
Sheets("Feuil1").Activate X = Application.InputBox(Prompt:="Valeur recherchée.", Type:=3) If X = False Then Exit Sub Call Recherche(X) End Sub
'------------------------------------------- Sub Touver_La_Prochaine_Valeur() Sheets("PFMP").Activate Call Recherche(X) End Sub
'------------------------------------------- Sub Recherche(Expression As Variant) Dim X As Variant, Trouve As Range
With Sheets("PFMP").Range("C3:DC3") If LastAdr = "" Then LastAdr = "A1" Set Trouve = .Find(what:=Expression, _ After:=.Range(LastAdr), _ LookIn:=xlValues, lookat:=xlPart, _ SearchDirection:=xlNext, SearchOrder:=xlByColumns)
If Not Trouve Is Nothing Then If LastAdr = "A1" Then Debut = Trouve.Address End If Trouve.Select If LastAdr <> "A1" And Debut = Trouve.Address Then MsgBox "Nous sommes revenus au point de départ." End If LastAdr = Trouve.Address End If End With End Sub '-------------------------------------------
Dim LastAdr As String
Dim X As Variant
Dim Debut As String
'-------------------------------------------
Sub Nouvelle_Recherche()
Dim Trouve As Range
Dim Adr As String
LastAdr = "": X = ""
'Sheets("PFMP").Activate
Sheets("Feuil1").Activate
X = Application.InputBox(Prompt:="Valeur recherchée.", Type:=3)
If X = False Then Exit Sub
Call Recherche(X)
End Sub
'-------------------------------------------
Sub Touver_La_Prochaine_Valeur()
Sheets("PFMP").Activate
Call Recherche(X)
End Sub
'-------------------------------------------
Sub Recherche(Expression As Variant)
Dim X As Variant, Trouve As Range
With Sheets("PFMP").Range("C3:DC3")
If LastAdr = "" Then LastAdr = "A1"
Set Trouve = .Find(what:=Expression, _
After:=.Range(LastAdr), _
LookIn:=xlValues, lookat:=xlPart, _
SearchDirection:=xlNext, SearchOrder:=xlByColumns)
If Not Trouve Is Nothing Then
If LastAdr = "A1" Then
Debut = Trouve.Address
End If
Trouve.Select
If LastAdr <> "A1" And Debut = Trouve.Address Then
MsgBox "Nous sommes revenus au point de départ."
End If
LastAdr = Trouve.Address
End If
End With
End Sub
'-------------------------------------------
Dim LastAdr As String Dim X As Variant Dim Debut As String
'------------------------------------------- Sub Nouvelle_Recherche()
Dim Trouve As Range Dim Adr As String
LastAdr = "": X = ""
'Sheets("PFMP").Activate
Sheets("Feuil1").Activate X = Application.InputBox(Prompt:="Valeur recherchée.", Type:=3) If X = False Then Exit Sub Call Recherche(X) End Sub
'------------------------------------------- Sub Touver_La_Prochaine_Valeur() Sheets("PFMP").Activate Call Recherche(X) End Sub
'------------------------------------------- Sub Recherche(Expression As Variant) Dim X As Variant, Trouve As Range
With Sheets("PFMP").Range("C3:DC3") If LastAdr = "" Then LastAdr = "A1" Set Trouve = .Find(what:=Expression, _ After:=.Range(LastAdr), _ LookIn:=xlValues, lookat:=xlPart, _ SearchDirection:=xlNext, SearchOrder:=xlByColumns)
If Not Trouve Is Nothing Then If LastAdr = "A1" Then Debut = Trouve.Address End If Trouve.Select If LastAdr <> "A1" And Debut = Trouve.Address Then MsgBox "Nous sommes revenus au point de départ." End If LastAdr = Trouve.Address End If End With End Sub '-------------------------------------------
Ca marche! Deux remarques: Initialement tu m'avais dit de mettre tout le code dans l'userform. C'est c e que j'avais fait. La ligne set trouve =... etc était sur une seule ligne alors que là e lle est sur trois lignes.
Ce sont les seules différences que je vois.
En tout cas merci pour le temps que tu m'as consacré.
Cordialement
JP
Bonsoir Denis,
Ca marche!
Deux remarques:
Initialement tu m'avais dit de mettre tout le code dans l'userform. C'est c e que j'avais fait.
La ligne set trouve =... etc était sur une seule ligne alors que là e lle est sur trois lignes.
Ce sont les seules différences que je vois.
En tout cas merci pour le temps que tu m'as consacré.
Ca marche! Deux remarques: Initialement tu m'avais dit de mettre tout le code dans l'userform. C'est c e que j'avais fait. La ligne set trouve =... etc était sur une seule ligne alors que là e lle est sur trois lignes.
Ce sont les seules différences que je vois.
En tout cas merci pour le temps que tu m'as consacré.