Exel trie

vogpat -  
necro27 Messages postés 175 Statut Membre -
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
A voir également:

9 réponses

necro27 Messages postés 175 Statut Membre 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
necro27 Messages postés 175 Statut Membre 8
 
euh..ce sont bien les 300 premières lignes que tu veux garder?
0
vogpat
 
Non ceux que je veux garder sont mélangés avec les autres
0
necro27 Messages postés 175 Statut Membre 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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vosgpat
 
Par exemple, une liste de nombre allant de 1 à 30, je veux garder que les chiffres 10 et 5.
0
necro27 Messages postés 175 Statut Membre 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
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
necro27 Messages postés 175 Statut Membre 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
necro27 Messages postés 175 Statut Membre 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