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

Bonjour Stapple

Oui C'est clair la boucle va sérieusement mouliner si il y a beaucops de lignes, mais Frosto ne nous a pas spécifier de quantité si je ne me trompe pas.

C'est casse pied, j'ai un souci avec ce fichier quo prends une taille anormale quand j'essaie de le XLS-iser... Mais bon il passe quand même.

Je n'ai pas trop regardé ton problème de ta première macro, je ne maîtrise pas trop les Crochets en vb, car l'Evaluate bien que rapide peut être aussi une source de drôle de trucs (de par mes Maîtres Excel de l'époque J.Walkenbach et autre Chip Pierson sans parler de mon ami Laurent Longre qui parlait parfois de méthodes cochonnes)

En fait si Frosto n'a pas des 10ène de milliers de lignes la boucles est simple à gérer.

Cordialement,

@+Thierry
 

Pièces jointes

Re : Effacement ligne sous condition

Re

Excuses-moi car je suis allé convertir ton fichier chez zamzar
et j'ai édité mon message ensuite

Je vois que tu as eu le temps de le lire avant édition.
merci pour l'xlisation express de ta part

PS: en laissant le cochon dans la porcherie, cela bug quand même 😉
 
Re : Effacement ligne sous condition

Merci à vous tous, pour ce qui est de la longueur de mes lignes à traiter c'est souvent au delà des 10000 lignes, j'ai essayé la page que _Thierry m'a passé mais elle ne fonctionne pas correctement chez moi, elle n'efface pas toutes les lignes non comprises dans ma fourchette, et elle met un certain temps (2 minutes) pour exécuter la macro.
Bon, je retourne à mes recherches, encore merci à vous 🙂
 
Re : Effacement ligne sous condition

Re

En cherchant , en m'arrachant les cheveux, j'ai eu un flash nommé SoftMama

Alors voici avec sa méthode, ce que cela donne
Code:
Sub A_la_SoftMamma()
With Range("H2:H" & Cells(Cells.Rows.Count, 1).End(xlUp).Row)
    .FormulaR1C1 = "=IF(RC[-3]>0.04,1,"""")"
    .Value = .Value
    .SpecialCells(xlCellTypeConstants, 1).EntireRow.Delete
End With
End Sub
Merci bien pour mes cheveux, Yann 😉

frosto
Je me base sur un exemple avec des données de la colonne A à E pour tester mes macros.
Essaie de joindre un fichier exemple au plus proche de ton fichier réel.
Cette dernière macro fonctionne elle aussi avec les paramètres cités ci-dessus.
 
Dernière édition:
Re : Effacement ligne sous condition


Bonsoir Frosto, re Staple1600,

Pour Frosto, je ne sais pas si nous avons toujours les mêmes critères de selection que le post ci-dessus, mais chez moi, si je filtre manuellement en comptant les Cellules qui correspondent à ces cellules j'en trouve 209 sur le classeur ainsi sauvé. (Le Lines Builder reconstruira une autre série en Randomize)

Ensuite en exécutant ceci

Select Case MyRange.Rows(i).Value
Case Is <= 0, Is >= 0.05
Rows(i).EntireRow.Delete
MyKilledLines = MyKilledLines + 1
Case Else
MyGoodLines = MyGoodLines + 1
End Select

MyGoodLines me retourne bien 209 (et 291 supprimées)

J'ai ajouté un Application.ScreenUpdating = False pour améliorer un peu (pas mal) les performances.


Pour Staple1600, Je vois que tu as changé de méthode JM, moi, je regardais ta précédente et j'ai aussi essayé la SoftMamma mais sur le fichier que je test j'ai Error 1004 dans les deux. Je pense que mon fichier n'est pas formatté comme tu l'espères. ci joint en XLS pour toi 😉

Cordialement

@+Thierry
 

Pièces jointes

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

Re

_Thierry
Je viens de tester ton fichier exemple (sous XL2K3)
The SoftMama's Way to Heaven est ok 😉

Ma macro initiale bug toujours(même avec les modifs ci-dessous)
(c'est pour cela que j'ai changer mon fusil d'épaule)

Code:
Sub Macro_OK()
With ActiveSheet
.Range("H1") = "HEADING"
.Range("H2") = ">0,04"
.Range("A1:F" & Cells(Cells.Rows.Count, 1).End(xlUp).Row).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=.Range("H1:H2"), Unique:=False
MsgBox .Range("_FilterDataBase").Address
'.Range("_FilterDataBase").Offset(1, 0).Resize(.Range("_FilterDataBase").Rows.Count - 1).SpecialCells(xlCellTypeVisible).Delete Shift:=xlUp
'.ShowAllData
End With
End Sub

Pour un test complet , décommenter les 2 lignes commentées
malheureusement cela bug toujours 😡
 
Dernière édition:
Re : Effacement ligne sous condition

Tout à fait Thierry, ooops JM ;-)

En effet il marche très bien, j'avais test après avoir tourné le mien, donc plantage 1004 si il n'y a rien retourné... (Missing Error Management)


Par contre tu gardes les valeurs 0 et négatives au fait et moi non, mais bon c'est peut-être la demande...

Donc oui la solution "SoftMama" is going fast to heaven, but I have some Sympathy for the Devil

Cordialement,

@+Thierry

EDIT cettte réponse ne tenait pas compte de ton dernier message edité
 
Dernière édition:
Re : Effacement ligne sous condition

Re

Keith ou Jimmy ?

Les deux, mon capitaine.

PS: Sans oublier l'autre Jimmy 😉

PS: quand je teste le filtre élaboré en manuel cela fonctionne, mais pas l'équivalent en VBA
J'en pleurerai si je pouvais.
EDITION:
Voici ce qui me mets en joie face à ce bug inextinguible.
(Monter le son de votre PC 😉 )
 
Dernière édition:
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…