un if dans un for qui deconne... MACRO excel

  • Initiateur de la discussion Initiateur de la discussion pierre@
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

pierre@

Guest
bonjour à tous,
j'ai une macro qui supprime des lignes mais elle ne compile pas, je ne comprend pas... voici le code :

Code:
   1. Sub supprimerLigne()
   2.       With ActiveSheet
   3.             For i=0 To 20
   4.                  If .Cells(i,2)="DIVERS" Or .Cells(i,2) = "DIV PME" Then
   5.                        .Rows(i & ":" & i).Delete Shift:=xlUp
   6.                        i=i-1
   7.                   End If
   8.              Next i
   9.        End With
  10. End Sub

je ne comprend pas, ça me met une erreur sur le if...
Avez vous une idée? Merci !
 
Re : un if dans un for qui deconne... MACRO excel

Code:
je ne comprend pas, ça me met une erreur sur le if...
Avez vous une idée? Merci !

Bonjour pierre@,

Ne cherche pas plus loin, ta boucle doit démarrer à 1 et non à 0 (la ligne zéro n'existe pas).

Cordialement.
 
Re : un if dans un for qui deconne... MACRO excel

Bonjour,

essaye peut être ainsi :

Code:
Sub supprimerLigne()
Dim i As Long
For i = 20 To 1 Step -1
If Cells(i, 2) = "DIVERS" Or Cells(i, 2) = "DIV PME" Then _
    Rows(i).Delete Shift:=xlUp
Next i
End Sub

lorsque tu supprimes des lignes il est préférable de partir de la fin et de remonter, et ce maxi jusqu'à 1, pas de ligne 0 dans excel...

bon après midi
@+

Edition : bonjour Papou
 
Re : un if dans un for qui deconne... MACRO excel

Bonjour pierre,

bizarre...., la compilation marche chez-moi.
Ferme peut-être le fichier, ouvre le de nouveau puis ré-essaye.

Edit: bonjour Papounet, Pierrot, arfff on a pas compris la même chose par "compilation".
 
Re : un if dans un for qui deconne... MACRO excel

Merci à Papou-net et à vous tous, pour votre promptitude !
c'était le i=0 qui n'allait pas...en plus c'est plus malin de remonter en effet, je n'ais pas le i-- qui est un peu sale...
Merci encore...
@skoobi, je me suis mal exprimé, ca ne s'executait pas mais ca compile.
 
Dernière modification par un modérateur:
Re : un if dans un for qui deconne... MACRO excel

Bonjour,

Papou a raison. De plus quand tu supprime des lignes, part de l'index maximal de ligne vers le vers
Code:
Sub supprimerLigne()
        With ActiveSheet
             [B][COLOR=red]For i=20 to 1 step -1[/COLOR][/B]
                   If .Cells(i,2)="DIVERS" Or .Cells(i,2) = "DIV PME" Then
                          [B][COLOR=red].Rows(i).Delete Shift:=xlUp[/COLOR][/B]
                       End If
                Next i
          End With
   End Sub

A+

[Edit] Mazette! on peut dire que je suis à la bourre😀
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
909
Réponses
15
Affichages
782
Réponses
8
Affichages
780
Réponses
4
Affichages
732
Réponses
10
Affichages
661
Retour