Allèger [Résolu]

Signaler
Messages postés
128
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
17 mai 2008
-
Messages postés
128
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
17 mai 2008
-
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

Messages postés
14772
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 mars 2021
151
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
Messages postés
128
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
17 mai 2008

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