cs_Achi
Messages postés128Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention17 mai 2008
-
4 mars 2008 à 10:37
cs_Achi
Messages postés128Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention17 mai 2008
-
4 mars 2008 à 10:54
Bonjour,
je fais appel à vous pour un code VBA sur excel.
voilà, j'ai importé une liste de valeur dans ma feuille excel.
mais j'ai 6 fois trop de valeurs dedans, en gros je souhaiterais supprimer 5 ligne sur 6 en gardant la première et en commencant à la ligne 4. Alors j'ai bien essayé un code fait maison ms sans succès, il me fait des suppressions aléatoires je pense que c'est avec la vitesse d'excécution qu'il plante car mon code a l'air correct.
je vous le copie ci-dessous, dites moi ce que vous en pensez
Public Ligne As Long
Public LigneSup As Long
Private Sub CommandButton1_Click()
Ligne = 3
LigneSup = 0
Do While Ligne <> 50
Ligne = Ligne + 1
LigneSup = LigneSup + 1
If LigneSup <> 1 Then Worksheets(1).Rows(Ligne).Delete
If LigneSup 6 Then LigneSup 0
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 4 mars 2008 à 10:48
Bonjour
dim i as long
dim j as long
i=5 'On ignore la première ligne
do while Range("A1")Offset(i,0).value<>""
for j=0 to 4 'Suppr de 5 lignes
Sheets("MaFeuille").Rows(i).Delete
'Note : WorkSheet(1) est risqué, en effet, si l'on change l'ordre des feuilles, ton code fera nimp.
Next j
i=i+1
loop
Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
cs_Achi
Messages postés128Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention17 mai 2008 4 mars 2008 à 10:54
Merci,
je vais regarder ton code pour m'instruire,
mais je viens juste de trouver mon erreur.
mon code n'est peut etre pas digne d'un informaticien mais il a l'air de fonctionner
pour info:
Public Ligne As Long
Public LigneSup As Long
Private Sub CommandButton1_Click()
Ligne = 3
LigneSup = 0
Do While Ligne <> 50
LigneSup = LigneSup + 1
If LigneSup <> 1 Then
Worksheets(1).Rows(Ligne).Delete
Else: Ligne = Ligne + 1
End If
If LigneSup = 6 Then
LigneSup = 0
End If
Loop
End Sub
En tout cas, merci pour la rapidité de ta réponse..