Exel trie

vogpat -  
necro27 Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   -
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. necro27 Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   8
     
    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
    0
  2. necro27 Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   8
     
    euh..ce sont bien les 300 premières lignes que tu veux garder?
    0
  3. vogpat
     
    Non ceux que je veux garder sont mélangés avec les autres
    0
  4. necro27 Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   8
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. vosgpat
     
    Par exemple, une liste de nombre allant de 1 à 30, je veux garder que les chiffres 10 et 5.
    0
  7. necro27 Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   8
     
    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.
    0
  8. vosgpat
     
    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
    0
  9. necro27 Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   8
     
    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...
    0
  10. necro27 Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   8
     
    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
    0