Supprimer les lignes qui comportent des nombres négatifs

Résolu/Fermé
lila - 28 févr. 2017 à 00:38
 lila - 1 mars 2017 à 20:49
Bonjour,

J'ai besoin d'aide:

Je travaille sur une base de données gigantesque, je dois supprimer toutes les lignes qui comportent des nombres négatifs (ces nombres sont dans la colonne F).
J'ai réussi à faire cela pour les ligne comportant des 0 mais pour les nombres négatifs je n'y arrive pas.

Voici mon code pour les 0:

Sub number()

Dim i As Long
Application.ScreenUpdating = False
For i = Range("F65536").End(xlUp).Row To 1 Step -1
If Cells(i, 6) = 0 Then Rows(i).Delete
Next i
Application.ScreenUpdating = True
End sub

Merci pour votre aide
A voir également:

5 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
28 févr. 2017 à 00:51
Bonjour,

Par macro ?
Parce qu'un simple filtre <=0 sur ta colonne et tu supprimes toutes les lignes d'un coup.
En plus ça sera 100 fois plus rapide que ta technique ligne par ligne
eric
1
Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096
28 févr. 2017 à 02:44
Bonjour à tous les deux.

La méthode d'Éric te permet de masquer les lignes concernées sans les détruire. Tu peux donc les réafficher ultérieurement, pour une vérification, une consultation ou un calcul.

Mais si tu veux réellement les détruire de manière irréversible, tu fais un tri décroissant par rapport à la colonne F, puis tu supprimes les dernières lignes (valeurs nulles et négatives). Ton fichier s'en trouve allégé.

Cordialement.
0
Un grand merci à vous 2 !

:)
0
Bonjour
Modification de ta macro
Sub number()
Dim L As Long
Application.ScreenUpdating = False
   For L = Range("F" & Rows.Count).End(xlUp).Row To 1 Step -1
      If Cells(L, 6) <= 0 Then Rows(L).Delete
   Next i
Application.ScreenUpdating = True
End Sub

A+
Maurice
0

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

Posez votre question
merci maurice
0