Bonjour les amis,
J'ai un petit souci avec une macro Excel bloque lorsqu'elle arrive à la boucle for suivante:
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.
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
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:
Cette fonction permet en fait de supprimer les lignes representants les années non voulues (2004 jusqu'à 2010).
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
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.
Partager