Allèger

Résolu
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 mai 2008 - 4 mars 2008 à 10:37
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 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


Loop
End Sub




Merci pour votre aide,






Achi

2 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
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
3
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 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..

super forum.






Achi
0
Rejoignez-nous