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

[VBA] Suppression lignes avec critère dans cellule

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

P

PLE

Guest
Bonjour

J'ai besoin de supprimer dans une feuille DATA
les lignes complètes dont la valeur dans la colonne AF (avec entête)
est supérieur à (valeur + 1) que je rentre sur Feuil DATA en cellule AG1
et
inférieur à la valeur en Feuil DATA cellule AH1



merci de m'écrire le code complet de SUB à END SUB

Merci de votre aide
 
Re : [VBA] Suppression lignes avec critère dans cellule

Bonjour PLE,

A tester dans un module ou dans le projet de ta feuille:

Code:
Sub SupprLng()

    Dim i As Long
    
    With Sheets("DATA")
    
        For i = .Range("AF65536").End(xlUp).Row To 2 Step -1
        
            If .Range("AF" & i).Value > .Range("AG1").Value + 1 And .Range("AF" & i).Value < .Range("AH1").Value Then
                
                .Rows(i).Delete
                
            End If
            
        Next i
        
    End With
    
End Sub

Bonne journée!
 
Re : [VBA] Suppression lignes avec critère dans cellule

Bonjour,

Peut-être qu'un extrait du fichier sans données confidentielles aiderait pour la résolution de ton problème 🙂
J'ai testé ce code et il marchait parfaitement !
 
Re : [VBA] Suppression lignes avec critère dans cellule

Re,

les lignes complètes dont la valeur dans la colonne AF (avec entête)
est supérieur à (valeur + 1) que je rentre sur Feuil DATA en cellule AG1
et
inférieur à la valeur en Feuil DATA cellule AH1

Le problème ici c'est que la valeur en AG1 est de 4 et en AH1 est de 0 or une valeur ne peut pas être supérieure à 4 (+1) et inférieure à 0 en même temps ! S'il faut supprimer toutes les valeurs comprises entre 4(+1) et 0 il faut que la condition soit:

Code:
If .Range("AF" & i).Value < .Range("AG1").Value + 1 And .Range("AF" & i).Value > .Range("AH1").Value Then


Plutôt que:

Code:
If .Range("AF" & i).Value > .Range("AG1").Value + 1 And .Range("AF" & i).Value < .Range("AH1").Value Then

De plus, le nom de la feuille n'est pas "DATA" et au vue du nombre de données il est judicieux de rajouter un Application.ScreenUpdating = False pour accélerer le temps de traitement.

Le code:

Code:
Application.ScreenUpdating = False

    Dim i As Long
    
    With Sheets("Lieferung_TLB")
    
        For i = .Range("AF65536").End(xlUp).Row To 2 Step -1
        
            If .Range("AF" & i).Value < .Range("AG1").Value + 1 And .Range("AF" & i).Value > .Range("AH1").Value Then
                
                .Rows(i).Delete
                
            End If
            
        Next i
        
    End With
    
Application.ScreenUpdating = True
 
- 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
2
Affichages
117
Réponses
3
Affichages
257
Réponses
4
Affichages
379
Réponses
4
Affichages
313
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…