Problème de pas avec VBA

Résolu
mad -  
 mad -
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   Statut Membre Dernière intervention   149
 
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   Statut Membre Dernière intervention   155
 
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
mad
 
Merci pour votre aide,
En fait je veux supprimer la ligne 8 à 37, puis 44 à 73...jusqu à la ligne 60001.
0
mad
 
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