suppression de ligne quand une cellule d'une colonne est supérieur à une valeur

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

taupivin

XLDnaute Junior
Bonjour à tous,

je souhaite, à l'aide de macro vba, réaliser une boucle afin de supprimer les lignes lorsque j'ai un pourcentage supérieur à 96 % dans la colonne F.
Vous trouverez la feuille ci-joint.

Mon code actuel est celui-ci :

sub blabla()

Dim cel_96 As Range
Dim ad_cel As Integer

For Each cel_96 In Range("F2:F40")
If cel_96.Value > 96 Then
ad_cel = cel_96.Row
Rows(ad_cel).Delete
End If
Next cel_96

end sub

Mon probleme est que lorsque j'exécute le code rien ne se passe. Je bloque dessus depuis un moment déjà et je commence à déprimer^^.

Merci d'avance
 

Pièces jointes

Re : suppression de ligne quand une cellule d'une colonne est supérieur à une valeur

Bonjour,

A noter, quand tu supprimes des lignes, il est préférable de commencer par la fin, sinon tu risques d'en zapper au cas ou le test est vérifié 2 fois de suite :
Code:
Dim i As Long
For i = 40 To 2 Step -1
    If Cells(i, 6) > 0.96 Then Rows(i).Delete
Next i

bonne journée
@+
 
Re : suppression de ligne quand une cellule d'une colonne est supérieur à une valeur

Bonjour,

Ta colonne F étant le résultat d'une formule en pourcentage de C13. Toutes tes lignes seront supprimées car il y en aura toujours une qui sera égale à 100%.

Supprime une ligne manuellement et tu verras le résultat.

Soit tu arrête le calcul automatique avant de supprimer les lignes soit tu remplace les formules par leur valeur.

Exemple en arrêtant le calcul automatique:

Code:
Sub blabla()
     Dim lg As Long
    'Arrêt du calcul automatique
    Application.Calculation = xlCalculationManual
    With Range("F2:F40")
    For lg = .Rows.Count To 1 Step -1
        If .Cells(lg, 1).Value > 0.96 Then .Cells(lg, 1).EntireRow.Delete xlShiftUp
    Next lg
    End With
    'Rétablissement du calcul automatique
    Application.Calculation = xlCalculationAutomatic
End Sub

Mais dans ce cas là les formules seront recalculées à la fin et tu auras de nouveau des lignes >0.96

P.S. pour supprimer des lignes par VBA on part de la fin pour remonter.
A+

[Edit] hello Pierrot🙂
 
- 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

Discussions similaires

Réponses
3
Affichages
590
Retour