De l'aide pour écrire une fonction recherche

  • Initiateur de la discussion Initiateur de la discussion antiphot
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

antiphot

XLDnaute Occasionnel
Bonjour à toutes et à tous

J'ai une une plage de référence dans laquelle se trouvent des dates. Disons A3:A1000
et 3 plages différentes contenant également des dates.

J'ai une procédure qui me permet de chercher par (find) si les dates contenues dans ces 3 plages se trouvent dans ma plage de référence.

Mon souci

Plutôt que d'être obligé de réécrire toute la procédure selon si il s'agit de la plage 1 2 ou 3, serait il possible d'écrire une fonction de recherche de date et d'insérer cette fonction dans chacune de mes routines en spécifiant seulement la plage choisie ?

Je ne sais pas si je suis très clair ? auquel cas n'hésitez pas à me demander des préçisions supplémentaires.

Merci par avance pour votre aide

Ci-dessous mon code actuel

Sub Macro1()
Application.ScreenUpdating = False
With Worksheets(1).Range("a3:a1000")
Plage = Page 1 ou plage 2 ou plage 3 (ici mes différentes plages)
Set c = .Find(Plage, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do

Set c = .FindNext(c)
'Action si date cherchée trouvée
Loop While Not c Is Nothing And c.Address <> firstAddress
End If

End With
Application.ScreenUpdating = True
End Sub
 
Re : De l'aide pour écrire une fonction recherche

Bonjour kjin

Heu je ne suis pas sûr de comprendre ta question ? Si tu parles de mes plages 1 2 et 3

plage 1 = sheets("fériés").range(L1:L5)
plage 2 = sheets("fériés").range(L10:L15)
plage 3 = sheets("fériés").range(L17:L21)
 
Re : De l'aide pour écrire une fonction recherche

bonjour voisin

Salut kjin

a priori il suffit de mettre la plage en parametre
du genre

Code:
Sub Macro1(LaPlage as Range)
Application.ScreenUpdating = False
With Worksheets(1).Range("a3:a1000")
'Plage = Page 1 ou plage 2 ou plage 3 (ici mes différentes plages)
Set c = .Find(LaPlage, LookIn:=xlValues)
..........
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
407
Réponses
7
Affichages
316
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
4
Affichages
469
Retour