Bonjour à tous,
Bon cette fois ci je vais essayé d'être clair car la dernière fois j'ai pas fait des merveilles(en plus l'intitulé est déjà obscure)
Bon j'ai un code assez standard qui fait une recherche sur une plage donnée et renvoie de l'info à chaque fois qu'il trouve quelque chose :
Un basique, qui marche très bien (je vous rassure je ne cherche pas à créer un programme qui renvoie JambonBeurre, je préfére clairement le saucisson
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 With InitDetail.Columns(ColDetail.Inv) 'plage de donnée pour la recherche Set DetailFoundRange = .Find(What:="Sandwich", LookIn:=xlFormulas, LookAt _ :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ True, SearchFormat:=False) If Not DetailFoundRange Is Nothing Then DetailFirstAddress = DetailFoundRange.Address Do MsgBox "JambonBeurre" 'a chaque fois qu'on trouve, on renvoie jambonbeurre Set DetailFoundRange = .FindNext(DetailFoundRange) Loop While Not DetailFoundRange Is Nothing And DetailFirstAddress <> DetailFoundRange.Address End If End With).
Le souci c'est que j'utilise ce bloc de recherche, assez volumineux, à plusieurs endroits et que j'aimerais donc l'enregistrer comme une routine dans un module que je puisse ensuite l'appeler :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 'Dans mon Module Public : Public Function FindInfo(LookRange As Range, LookWhat As Object, LocalEvent as Function) With LookRange Set FoundRange = .Find(What:=LookWhat, LookIn:=xlFormulas, LookAt _ :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ True, SearchFormat:=False) If Not FoundRange Is Nothing Then FirstAddress = FoundRange.Address Do LocalEvent Set FoundRange = .FindNext(FoundRange) Loop While Not FoundRange Is Nothing And FirstAddress <> FoundRange.Address End If End With End Functionoù les "..." serait la définition de ma fonction LocalEvent (LocalEvent As Function n'existe pas)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 'Dans ma procédure : Call FindInfo(InitDetail.Columns(ColDetail.Inv),"Sandwich",...)
En résumé, je n'arrive pas à interrompre une routine appelée pour dérouler une partie de code local
Code : Sélectionner tout - Visualiser dans une fenêtre à part LocalEvent=MsgBox "JambonBeurre"
C'est clair ou pas ?![]()
Partager