Exel trie

Bonjour,

Je voudrais réaliser une macro pour trier, j'ai 3000 ligne de données avec pour chaque ligne un code (ex: 11196) et je souhaiterai en garder 300.

J'ai réalisé cet macro :

Sub supprimer()
Dim i As Double
Worksheets(1).Select
i = 2
Application.ScreenUpdating = False
Do While Cells(i, 1) <> 0
If Not (Cells(i, 1) = " " ) Then

Cells(i, 1).EntireRow.Delete
Else
i = i + 1
End If
Loop
Application.ScreenUpdating = True
End Sub

mais je ne peux mettre (cell(i,1)="" or cell(i,1)="") pour les 300 lignes que je veux garder .

Comment faire pour garder les 300 lignes?

Merci
Configuration: Windows XP Internet Explorer 7.0

9 réponses

  1. Salut vogbat,

    Je ne suis pa un expert mais je propose

    A tu essayer d'ajouter un compteur de ligne?

    ex :
    Do While Cells(i, 1) <> 0 and numligne < 301
    <code>
    loop

    do while cells(numligne,1)<>0
    <selection + supression>
    loop

    di moi ce que tu en pense

    Necro27
    1. Bonjour,

      Désolé pas pu repondre plus tôt

      Quels sont tes critères de sélection afin de définir les 300 lignes à garder?

      Veux tu effectuer un tri par odre croissant de ta colonne puis en ressortir les 300 premières lignes?

      N'hésite pas à donner des détails si tu n'as pas trouvé la solution depuis ier

      Necro27
      1. Par exemple, une liste de nombre allant de 1 à 30, je veux garder que les chiffres 10 et 5.
        1. Ok,

          Tu met un compteur pour déterminer le nombre de lignes , tant que ton compteur est inférieur à 300 tu continu.

          En condition, tu n'as juste à mettre un 'if' pour filtrer ta recherche..

          Dans ton exemple :
          if cells(ligne,colonne)= 5 and cells(ligne,colonne) = 10 then
          [code]
          end if

          Si tes valeurs sont variables, tu les fais saisir par un utilisateur par un inputbox.
          1. J'ai déjà fais ça mais j'en ai 300 à sélectionner sur 3000 donc suivant ta logique je devrais faire cells(ligne, colonne) =" " pour les 300 que je veux mais au bout de 50 vba bloque
            1. il bloque au bout de 50 lignes?

              peux tu me montrer ton code si tu la modifié depuis ton premier message.

              j'ai eu un problème similaire dernièrement...
              1. j'ai une idée

                tu marque

                Do While Cells(i, 1) <> 0
                [...]
                Loop

                essai pluto
                while cells(2,1) <> 0
                [...]
                activecell.offset(1,0).activate
                wend