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

code de recherche fonctionnant pour plusieurs feuilles

4 réponses
Avatar
JP
Bonjour,

J'ai ce code donn=E9 par MDenis qui me permet de chercher dans une zone d=
=E9finie d'une feuille nomm=E9e.
Je voudrais utiliser le m=EAme code mais qu'il fonctionne sur plusieurs feu=
illes avec des zones diff=E9rentes d'une feuille =E0 l'autre.

Est-ce possible?

Voici le code:

Merci pour les conseils.

JP

'D=E9claration des variables dans le haut du formulaire
Dim LastAdr As String
Dim X As Variant
Dim Debut As String
'-------------------------------------------
Sub Nouvelle_Recherche()

Dim Trouve As Range
Dim Sh As Worksheet, Adr As String

LastAdr =3D "": X =3D ""
Worksheets("Fournisseurs").Activate 'Nom feuille =E0 adapter
X =3D Worksheets("fournisseurs").TextBox13.Object.Value ' Application.Input=
Box(Prompt:=3D"Valeur recherch=E9e.", Type:=3D3)
If X =3D False Then Exit Sub

Call Recherche(X)

End Sub

'-------------------------------------------
Sub Touver_La_Prochaine_Valeur()
If X =3D "" Then Exit Sub
Worksheets("Fournisseurs").Activate

Call Recherche(X)

End Sub

'-------------------------------------------
Sub Recherche(Expression As Variant)
Dim X As Variant, Trouve As Range, Sh As Worksheet
Set Sh =3D ActiveSheet
With Range("D25:O226")
If LastAdr =3D "" Then LastAdr =3D "D25"
Set Trouve =3D .Find(what:=3DExpression, after:=3DRange(LastAdr), _
LookIn:=3DxlValues, lookat:=3DxlPart, SearchDirection:=3DxlNext, _
SearchOrder:=3DxlByRows)
If Not Trouve Is Nothing Then
If LastAdr =3D "D25" Then
Debut =3D Trouve.Address
End If
Trouve.Select
If LastAdr <> "D25" And Debut =3D Trouve.Address Then
MsgBox "Nous sommes revenus au point de d=E9part."
End If
LastAdr =3D Trouve.Address

End If
End With
End Sub

4 réponses

Avatar
MichD
Bonjour,

Un fichier exemple : http://cjoint.com/?CKurhHqCRsL

MichD
---------------------------------------------------------------
Avatar
JP
Denis,

Peut être me suis je mal fait comprendre.
Comme mon projet ne t'est complètement méconnu, il s'agit d'appeler la macro Nouvelle_Recherche par l'intermédiaire des textboxs (fond jaune).
J'en ai une sous l'onglet fournisseurs et j'en ai une autre sous l'onglet c lients. J'aurai surement d'autres textboxs dans d'autres onglets qui pourra ient faire appel toujours au même code de recherche.
Il ne s'agit en aucun cas de faire la même recherche sur plusieurs onglet s comme le fait la modification proposée.
Il s'agit de faire une recherche dans le fichier client à un certain mome nt et à un autre moment de faire une recherche sur l'onglet fournisseurs. Je demandais si la même macro pouvais être exploitées en sachant que les zones de recherches varient d'un onglet à l'autre.
Plage D25:O226 pour l'onglet fournisseurs et plage D22:N1000 pour l'onglet Clients.
Est-ce que c'est possible?

Merci d'avance pour ta réponse.

JP
Avatar
MichD
Ton message démontre que tu n'as pas lu le code dans
le module1 et encore moins tenter s'essayer de le comprendre...

Regarde dans ce module1, la procédure "Nouvelle_Recherche"
J'explique comment tu peux faire pour associer une certaine
feuille avec la plage de cellules associées où la recherche doit
s'effectuer.

Attention, je fais des suggestions, élabore des exemples et donne
des explications si je le peux, mais, je n'ai pas la responsabilité
d'adapter ces suggestions dans le projet de l'usager au point et
à la virgule près.

MichD
---------------------------------------------------------------
Avatar
JP
oups, tu as raisons, j'ai utilisé ton exemple et en voyant le fonctionnem ent j'ai pensé tout de suite que je m'étais mal expliqué.
Je me suis remis en cause tout de suite sans penser plus loin. Trop press é d'avancer dans mon projet.
Franchement désolé, je vais regarder avec attention le code que tu m'as proposé.

JP