Bonjour les amis,

J'ai un petit souci avec une macro Excel bloque lorsqu'elle arrive à la boucle for suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
'    For i_annee = 5 To annee_en_cours - 2001
'        find_range(2000 + i_annee, Columns(col_max - 7)).EntireRow.Delete
'    Next
Cette macro permet normalement de mettre en forme un fichier contenant des données en les mettant en forme dans des tableaux suivant certains critères.
Au départ, le fichier contient une seule feuille et suite à l'éxécution de la macro celui-ci contient 9 feuilles.
En éxécutant la macro pas à pas, le problème vient en effet de cette boucle for qui fait appel à la fonction suivante:

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
17
18
19
20
21
 
'fonction retournant les cellules (de la plage passée en paramètre) dans lesquelles on trouve la valeur/formule passée en paramètre
Private Function find_range(find_item As Variant, search_range As Range, Optional look_in As Variant, Optional look_at As Variant, Optional match_case As Boolean) As Range
	'si les arguments optionnels ne sont pas renseignés
	Dim c As Range
	If IsMissing(look_in) Then look_in = xlValues 'xlFormulas
	If IsMissing(look_at) Then look_at = xlPart   'xlWhole
	If IsMissing(match_case) Then match_case = False
	'corps de la fonction
	With search_range
		Set c = .Find(What:=find_item, LookIn:=look_in, LookAt:=look_at, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=match_case, SearchFormat:=False)
		If Not c Is Nothing Then
			Set find_range = c
			firstAddress = c.Address
			Do
				Set find_range = Union(find_range, c)
				Set c = .FindNext(c)
			Loop While Not c Is Nothing And c.Address <> firstAddress
		End If
	End With
End Function
Cette fonction permet en fait de supprimer les lignes representants les années non voulues (2004 jusqu'à 2010).
En mettant la boucle for en commentaire, la macro s'éxécute correctement sauf que les lignes avec les années non-voulues s'affichent.

PS: le message d'erreur est Run-time erreur 91: Object Variable or With bolck variable not set.

Merci d'avance pour toute aide éventuelle.