Problème de pas avec VBA

Résolu/Fermé
mad - 22 oct. 2013 à 08:48
 mad - 22 oct. 2013 à 12:39
Bonjour,

Je cherche à supprimer des lignes tout en respectant une incrémentation.
Pour ce faire je veux mettre des X et supprimer les lignes X. Mon problème est qu' à partir de la ligne 8 j'ai des X partout sans respecter le pas que je souhaite.
Je n'y connais pas grand chose en programmation. Voici le code que j'utilise:

Sub test()
'Déclaration ===============
Dim X As Long
Dim Y As Integer
Dim Cel As Range
'MEI =======================
Y = 5
For X = 8 To 60001 Step 7
Range(Cells(X, Y), Cells(X + 29, Y)) = "X"
Next X
'suppression ===============
Do 'début de boucle ---------------------
Set Cel = Columns(Y).Find("X", LookIn:=xlValues)
'cel=celuule de la colonne Y contenant X
If Cel Is Nothing Then
'si cel n'existe pas
Exit Do
'sortir de la boucle
Else ' sinon
Rows(Cel.Row).Delete
'supprimer la ligne de cel
Set Cel = Nothing
'supprimer cel(la variable)
End If
Set Cel = Nothing
Loop 'fin de boucle --------------------
End Sub

Merci d'avance

4 réponses

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
Modifié par Zoul67 le 22/10/2013 à 09:20
Bonjour,

Apparemment tu veux supprimer une ligne sur 7.
Plutôt que de passer par le remplissage de cellules cibles par "X", je te conseille de :
- soit faire un pas de 6 pour supprimer les lignes (tout le bas du tableau montant d'un cran)
- soit faire une boucle for avec un pas de -7 (donc en partant du bas du tableau) : For i = 60005 to 8 step -7
Rows(i).delete


A+
0
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
22 oct. 2013 à 09:18
Bonjour,

c'est normal que tu aies des X partout à partir de la ligne 8 car c'est toi qui lui demande de mettre des X de la ligne 8 à la ligne 6001 via ce bout de code :

For X = 8 To 60001 Step 7 'A partir de la ligne 8 toutes les 7 lignes jusqu'à la ligne 60001
Range(Cells(X, Y), Cells(X + 29, Y)) = "X" 'la cellule de la ligne x et colonne 5 à la cellule de la ligne X+29 (donc si x=8, de la ligne 8 à 37), la veleur des cellules est X
Next X 'on ajoute 7 à la variable X

Que voulais-tu faire à la base?
0
Merci pour votre aide,
En fait je veux supprimer la ligne 8 à 37, puis 44 à 73...jusqu à la ligne 60001.
0
C'est bon j'ai trouvé ! je n'avais pas bien compris le "pas". j'ai mis la bonne valeur et c'est ok
0