suppression de lignes

  • Initiateur de la discussion Initiateur de la discussion Osella
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

O

Osella

Guest
Bonjour,

le but de ma macro est simple:

faire un filtre sur la colonne AB
selectionner les valeurs "0,00"
supprimer les lignes correspondantes

Je débute dans les macros.
Si quelqu'un pouvait m'aider, je lui en serai très reconnaissant.

Merci d'avance

Osella
 

Pièces jointes

Bonjour

A placer dans un module standard :

Public Sub vev()
Dim i As Integer
For i = Range("ab65536").End(xlUp).Row To 2 Step -1
If Range("ab" & i) = 0 Then Rows(i).Delete
Next i
End Sub

Apparement ta macro9 était bonne.

Salut
Hervé
 
Salut Hervé

il est clair que ça marche très bien. Mais c'est très lent.
Ce que je veux automatiser représente ceci quand je ne fais pas de macro:

je fais un filtre sur la ligne 1
puis je sélectionne la valeur "0,00" dans la colonne AB
je sélectionne ensuite les cellules visibles
puis "Ctrl - "


ça prend maxi 1à 2 min

Merci d'avance de ton aide

Osella
 
Bonjour Osella,
Tout le forum et tous ceux qui se dévouent ...

Pourquoi ne pas faire plus simplement :
1. un tri décroissant de tes données sur la colonne AB
2. rechercher la 1ère valeur = 0 dans cette colonne
3. effacer à partir de cette ligne jusqu'au bas de la feuille

@+
Bertrand
 
Bonjour Bertrand,

Je trouve ta méthode vraiment pas mal.
Mais j'ai un tout petit souci, je ne sais pas comment écrire en langage macro "rechercher la 1ere valeur = 0 dans la colonne AB"

Y'aurait-il déjà eu des messages à ce sujet?


Merci d'avance

Osella
 
bonjour

je ne t'avais pas oublié osella, et cherchais en vain à traduire en macro ton sytème de filtre, mais l'idée de bertrand est pas mal.

voila la traduction de l'idée de bertrand en vba appliqué à ton tableau :

Public Sub vev()
Columns("A:AB").Sort Key1:=Range("AB1"), Order1:=xlDescending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers

Set cellule = Columns("AB").Find(What:="0", LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
Range(cellule.Address(0, 0), Range("ab65536")).EntireRow.Delete
End Sub


Pour ceci j'ai utilisé l'enregistreur de macro.

Salut
Hervé
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
719
Retour