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

XL 2016 Supprimer des lignes sous condition

HelloDy

XLDnaute Junior
Bonjour le forum,

Une macro (que vous m'avez aidée à concevoir, merci encore ) met en forme des données qui crée le tableau ci-joint.
J'aimerais ajouter un bout de macro à la fin qui supprime les lignes dont la cellule J = 1,2*H (par exemple les lignes 8 à 12)

Quelqu'un peut m'aider ?

Merci beaucoup


Elo
 

Pièces jointes

  • Exemple.xlsx
    30.3 KB · Affichages: 11

job75

XLDnaute Barbatruc
Bonjour HelloDy,

Si comme sur l'exemple il y a peu de lignes à supprimer on peut utiliser cette macro très simple :
VB:
Sub SupprimerLignes()
Dim i&
Application.ScreenUpdating = False
With [A7].CurrentRegion
    For i = .Rows.Count - 1 To 3 Step -1 '2 lignes de titres
        If Format(.Cells(i, 10), "0.00") = Format(.Cells(i, 8) * 1.2, "0.00") Then .Rows(i).Delete
    Next
End With
End Sub
Vous avez dit que la ligne 11 devait être supprimée mais elle ne l'est pas car J11= 6,00 et 1,2*H11 = 5,976 arrondi à 5,98.

A+
 

HelloDy

XLDnaute Junior
Bonjour @job75,

Je n'ai pas encore testé la macro mais merci d'avance

Pour la ligne 11 en fait oui elle doit bien être supprimée, les valeurs sont trop proches pour être ignorées. 5,976 doit être arrondi à 6.

Est-ce que cela modifie la macro ?
 

job75

XLDnaute Barbatruc
Bonjour HelloDy, le forum,

Il peut exister des problèmes d'arrondi, voyez ce fil :

https://www.excel-downloads.com/threads/probleme-darrondi.20036978/

Pour les éviter utilisez plutôt cette macro :
VB:
Sub SupprimerLignes()
Dim i&
Application.ScreenUpdating = False
With [A7].CurrentRegion
    For i = .Rows.Count - 1 To 3 Step -1 '2 lignes de titres
        If Abs(1.2 * .Cells(i, 8) - .Cells(i, 10)) < 0.1 Then .Rows(i).Delete xlUp
    Next
End With
End Sub
Bonne journée.
 
Dernière édition:

Discussions similaires

Réponses
22
Affichages
787
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…