Macro supp de lignes qui plante

Bernard-Louis

XLDnaute Occasionnel
Bonjour le forum,

J'ai cette macro qui tourne depuis plusieurs mois,

Code:
Sub SupprimeAnnee()
Dim i As Integer

 Sheets("SWI08").Select
    
    
    If MsgBox("Nous sommmes, le " & Format(Date, "dddd dd mmmm yyyy") & vbNewLine & "Vous voulez supprimer l'année 2009 ?", vbYesNo) = vbYes Then

    For i = 1 To Range("A65536").End(xlUp).Row
        If Cells(i, 1).Value = "2009" And Cells(i, 1) < Now Then
           Cells(i, 1).EntireRow.Delete
           i = i - 1
           
        End If
    Next
     Else
   
End If

    
End Sub


maintenant elle plante apres avoir supprime une 10 de lignes sur :

Code:
 i = i - 1

alors qu'il y a environ 1500 lignes a supprimer.
Quelqu'un aurait il une idée sur ce plantage ?
Merci pour l'aide.
 

mutzik

XLDnaute Barbatruc
Re : Macro supp de lignes qui plante

bonjour, pour faire une suppression de lignes, il vaut mieux partir du bas vers le haut, soit
For i = Range("A65536").End(xlUp).Row to 1 step -1
sinon

i = Range("A65536").End(xlUp).Row
do while i<>1
If Cells(i, 1).Value = "2009" And Cells(i, 1) < Now Then Cells(i, 1).EntireRow.Delete
i = i - 1
loop
 
Dernière édition:

mutzik

XLDnaute Barbatruc
Re : Macro supp de lignes qui plante

re à tous les deux,
oui chez moi aussi, cela fonctionne, même avec le code do while - loop
fais attention quand tu déclares tes variables, un integer ne va que jusu'à 32767 et cela risque de te pposer prob à l'avenir si tu as plus que ce nombre de lignes (c'est pour cela que l'ami Jean-Marcel l'a déclaré en long
sinon, And Cells(i, 1) < Now ne sert strictement à rien et sera toujours vrai puisque now()renvoie un chiffre correrspondant au nombre de jours écoulés depuis le 1er janvier 1900, donc sera toujours supérieur au chiffre que tu mets dans la colonne A
 

Bernard-Louis

XLDnaute Occasionnel
Re : Macro supp de lignes qui plante

Merci à tous les 2,

Elle plante toujours sur le 1er End If,
Le fichier total fait 8500 lignes et la macro doit en supprimer 2300 environ.
Je laisse ce probleme de coté pour l'instant, car je ne vois pas de solution;
Merci encore et bonne journée.
Cordialement
 

MJ13

XLDnaute Barbatruc
Re : Macro supp de lignes qui plante

Bonjour Bernard-Louis, Jean-marcel, Mutzig.

J'ai testé avec le fichier du post #6 sur 65535 lignes (en rajoutant des valeurs 2009 en colonne 1) et en mettant as double au lieu de as integer.
Je n'ai pas eu de problèmes sur XL 2003, sinon que c'est long, long, long, très long...
 

Discussions similaires

Réponses
15
Affichages
508

Statistiques des forums

Discussions
312 345
Messages
2 087 485
Membres
103 557
dernier inscrit
gerard.messerlin68@orange