Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Effacement ligne sous condition

  • Initiateur de la discussion Initiateur de la discussion frosto
  • 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 !

F

frosto

Guest
Bonjour,

Je suis une grande débutante pour ce qui est d'excel (je sais créer un tableau simple de comptes avec des fonctions basiques style SOMME...) et depuis ce matin je cherche à obtenir simplement une macro qui me permettrait de supprimer des lignes si la valeur de leur case E est comprise entre 0.01 et 0.05, j'ai donc cherché partout dans ce forum, ou certaines demandes ressemblent au résultat que j'aimerai obtenir mais ça ne fonctionne pas pour moi, et je ne sais pas pourquoi...malgré de nombreuses tentatives.
Peut être que quelqu'un ici pourra m'éclairer car je commence à perdre espoir.
J'ai essayé plusieurs approches différentes de macro mais aucune ne fonctionne, je commence à me sentir nulle...
Merci à toutes les âmes charitables qui voudront bien prendre le temps de me répondre.

Amandine la Novice.

Ci-joint un exemple du tableau que je désire créer

EDIT : Je suis désolé, c'est en fait l'exact contraire qu'il me faudrait, à savoir supprimer toutes les lignes qui n'ont pas une valeur comprise entre 0.01 et 0.04 dans la colonne E😕😕
 

Pièces jointes

Dernière modification par un modérateur:
Re : Effacement ligne sous condition

Bonsoir, frosto,

et bienvenue sur le forum !
une macro qui me permettrait de supprimer des lignes si la valeur de leur case E est comprise entre 0.01 et 0.05
A quel moment, la suppression ? lors de la saisie, à l'ouverture du fichier, à l'activation de la feuille, ou à la demande ?
 
Re : Effacement ligne sous condition

Bonsoir, frosto,

et bienvenue sur le forum !

A quel moment, la suppression ? lors de la saisie, à l'ouverture du fichier, à l'activation de la feuille, ou à la demande ?

Merci pour la bienvenue, la suppression serait à la demande, car j'aurai besoin de le remplir par copier/coller externe, puis de supprimer les lignes avec les conditions décrites.

Merci pour vos réponses à la vitesse de la lumière 🙂
 
Re : Effacement ligne sous condition

Bonsoir à tous

Pourquoi ne pas simplement utilisé le filtre automatique avec une macro?
 

Pièces jointes

  • ff.png
    7.3 KB · Affichages: 141
  • ff.png
    7.3 KB · Affichages: 142
Dernière édition:
Re : Effacement ligne sous condition

BonsoiRe

Donc avec filtre auto en VBA
Code:
Sub Macro1()
Dim pF As Range
Range("E1").AutoFilter Field:=1, Criteria1:=">=0.01", Operator:=xlAnd, Criteria2:="<=0.05"
Set pF = [_FilterDataBase]
pF.Offset(1, 0).Resize(pF.Rows.Count - 1).SpecialCells(12).Delete Shift:=xlUp
ActiveSheet.AutoFilterMode = False
End Sub
 
Re : Effacement ligne sous condition

Re,

à la demande, bornes exclues.

Merci beaucoup pour cette feuille qui fait en fait... le contraire de ce qu'il me faut 🙂
J'ai du mal m'exprimer parce qu'en fait je n'ai pas besoin de supprimer les lignes qui ont une valeur comprise entre 0.01 et 0.04 en case E, mais au contraire de supprimer toutes les autres (celles qui ont pour valeur tout sauf les chiffres compris entre 0.01 et 0.04), ou dans une autre vision des choses j'aurai besoin de ne conserver que les lignes ou la valeur de E est comprise dans cette fourchette <0.05 et >0.00.
J'ai tout de même essayé de modifier cette macro, qui a l'avantage de n'avoir que peu de texte de code, ce qui me rend la tache plus facile, je croyais avoir trouvé en remplaçant les chiffres de la fourchette par leur inverse mais ça ne fonctionne pas, je ne comprend pas très bien la notation des commandes VBS, ayant commencé aujourd'hui.
Merci en tout cas car ça me donne une bonne piste et je vais voir si j'arrive à bricoler plus avant.

[EDIT] EDIT : je viens de me relire et en effet, j'ai carrément dit l'opposé de ce qu'il me fallait dans mon premier post, désolé de vous avoir fait perdre votre temps par une erreur d'inattention 😕😕😕


Merci à vous également,

J'ai essayé cette macro mais cela m’efface en fait toutes les lignes à part la première trouvée avec <0.05, j'aurai en fait besoin d'une macro qui me garde toutes les lignes qui ont la valeur comprise entre 0.01 et 0.04 en colonne E, j'ai essayé de modifier la macro mais pour l'instant je ne comprends vraiment rien à la notation employée (je suis une trèèèèèèèssssss grande débutante en macros, mais j'essaye de progresser)
Merci en tout cas d'avoir passé du temps à essayer de m'aider, et très rapidement de plus.
Je me remettrais au travail demain matin, car il se fait tard.
Encore merci 🙂
 
Dernière modification par un modérateur:
Re : Effacement ligne sous condition

Re, salute Victor21


frosto
Essaie avec cette modif, ca devrait le faire 😉
Code:
Sub Macro2()
Dim pF As Range
Range("E1").AutoFilter Field:=1, Criteria1:=">0.04"
Set pF = [_FilterDataBase]
pF.Offset(1, 0).Resize(pF.Rows.Count - 1).SpecialCells(12).Delete Shift:=xlUp
ActiveSheet.AutoFilterMode = False
End Sub
 
Re : Effacement ligne sous condition


Bonjour et merci de continuer à m'aider.
J'ai essayé le morceau de code que vous m'avez donné mais il a le même effet que cité précédemment, il ne garde qu'une seule des lignes, et je n'arrive pas à comprendre pourquoi, ce code étant trop complexe pour moi, j'ai pourtant essayé de le modifier toute la matinée.
J'ai également essayé avec la macro donné par Victor21, mais je n'ai malheureusement pas eu de résultat plus probant, pourtant ce code me parait assez simple, il doit me manquer des connaissances basiques pour le faire fonctionner...
Merci de vos efforts, c'est vraiment très gentil d'essayer de m'aider 🙂
 
Re : Effacement ligne sous condition

Bonjour


Pourtant la macro fonctionne 😉
Voir ci-dessous


PS: il faut évidemment qu'il en E1 un entête comme sur la copie d'écran
(cad un titre de colonne et non pas une valeur)

PS: en général, je teste les codes VBA que je propose, et sauf dans les cas ou j'ai abusé du tipunch, je poste des codes vba fonctionnels 😉
 
Dernière édition:
Re : Effacement ligne sous condition


Bonjour,

c'est étrange parce que ça n'a pas du tout le même effet chez moi, je ne comprends pas, j'ai pourtant créé un tableau simple et ai ensuite copié le code donné dans une macro mais le résultat n'est pas du tout le même, le problème peut il venir du fait que je sois sous excel 2007 ?
Je vous joint une capture d'écran ainsi que mon fichier test, au cas ou.
Merci beaucoup pour le temps passé à m'aider.
 

Pièces jointes

  • Classeur1.xls
    Classeur1.xls
    33.5 KB · Affichages: 51
  • Classeur1.xls
    Classeur1.xls
    33.5 KB · Affichages: 57
  • Classeur1.xls
    Classeur1.xls
    33.5 KB · Affichages: 55
  • macro.jpg
    46 KB · Affichages: 72
  • macro.jpg
    46 KB · Affichages: 77
  • macro.jpg
    46 KB · Affichages: 78
Re : Effacement ligne sous condition

Re


J'avais testé sur une feuille où seule le colonne E contient des données
Et cela fonctionne (dans ce cas là)

Par contre effectivement dans ton fichier Exemple cela ne fonctionne pas.

Je cherche pourquoi et te redis.
 
Re : Effacement ligne sous condition

Re

Cette fois-ci cela fonctionne, palsambleu !

Code:
Sub Macro_OK()
With ActiveSheet
.Range("H1").FormulaR1C1 = "ENTETE5"
.Range("H2") = ">0,04"
.Range("A1:F12").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=.Range("H1:H2"), Unique:=False
.Range("_FilterDataBase").Offset(1, 0).Resize(.Range("_FilterDataBase").Rows.Count -1).SpecialCells(xlCellTypeVisible).Delete Shift:=xlUp
.ShowAllData
End With
End Sub
Voici les données de départ avec lesquelles la macro ci-dessus fonctionne.

 
Dernière édition:
Re : Effacement ligne sous condition

Bonjour Thierry

By the way, tu n'aurais pas une idée du pourquoi du bug de ma 1ère macro ?


PS: la boucle est moins rapide théoriquement quun autofilter ou un advancedfilter, non ?
 
Dernière édition:
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…