Bonjour à tous,
Sujet maintes et maintes fois discuté je sais, ça fait deux jours que je fais des recherches et des tests mais je n'ai toujours pas réussi. Je veux qu'à l'ouverture de mon fichier excel "Liste des entrepreneurs.xls" ma macro s'exécute pour les 25-35 feuilles du classeur. Je veux supprimer les lignes où la date en colonne F est plus vieille qu'un an.
Cette macro fonctionne parfaitement si j'y vais feuille par feuille :
Est-ce que quelqu'un peut m'aider?
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 Private Sub Worksheet_Activate() Dim refdate Dim i, imax refdate = Now() imax = Range("F65536").End(xlUp).Row For i = 5 To imax + 1 If (refdate - (Range("F" & i).Value) > 365) And (Range("F" & i).Value <> "") Then Range("F" & i).EntireRow.Delete i = i - 1 Else: Exit Sub End If Next i End Sub Mais cette macro placée dans Thisworkbook ne fonctionne pas et je ne comprend pas pourquoi : Private Sub Workbook_Open() Dim sht As Worksheet Dim refdate Dim i, imax refdate = Now() imax = Range("F65536").End(xlUp).Row For Each sht In Worksheets Debug.Print sht.Name For i = 5 To imax + 1 If (refdate - (Range("F" & i).Value) > 365) And (Range("F" & i).Value <> "") Then Range("F" & i).EntireRow.Delete i = i - 1 Else: Exit Sub End If Next i Next End Sub
Partager