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

suppression de lignes sous condition si différent de

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

Z

zbee

Guest
Bonsoir à tous,

Je sais il y a de nombreux posts à ce sujet mais j'ai beau faire et refaire
cela ne fonctionne pas

Chaque jour, j'importe un tableau contenant plusieurs colonnes renseignées avec nb entêtes figées(de A à K)
nombre de lignes variables
La colonne C intitulée "entités" contient les valeurs CC1 ou CC2, CC3, CC4 etc...

J'aimerais supprimer toutes les lignes dont la valeur est différente de CC1 et de CC2 et de CC3
donc supprimer CC4, CC5, etc....

ci-dessous le code essayé:

sub effacer()
Dim i As Integer

For i = Range("a65536").End(xlUp).Row To 1 Step -1
If Cells(i, 1).Value <> "CC1" Or Cells(i, 1).Value <> "CC2" Then Rows(i).Delete

Next i

End Sub

Quelqu'un peut corriger et surtout expliquer?
par exemple que signifie .Row To 1 Step -1

merci
 
Re : suppression de lignes sous condition si différent de

bonjour

c'est une boucle simplement

allant du numéro de la ligne trouvée par range("a65536") à la 1 au pas de -1

c'est en sorte un compte à rebour
 
Re : suppression de lignes sous condition si différent de

essayer ceci

Code:
Sub effacer()
    Dim i As Integer
    For i = Range("a65536").End(xlUp).Row To 1 Step -1
          If Cells(i, 1).Value = "CC1" Or Cells(i, 1).Value = "CC2" Then
          'MsgBox "VRAI"
          Else
          'MsgBox "FAUX"
          Rows(i).Delete
          End If
    Next i
End Sub
 
Re : suppression de lignes sous condition si différent de

super ça marche
donc avec <>
ça fonctionne pas.... bizarre

j'avais trouvé cette variante:

Sub Effacer3()

Dim i As Integer
For i = Range("A65536").End(xlUp).Row To 2 Step -1
Select Case Range("A" & i)
Case "CC1", "CC2", "CC3"
Case Else: Rows(i).Delete
End Select
Next
End Sub

merci
 
Re : suppression de lignes sous condition si différent de

Bonjour le fil, le forum,

S'il y a beaucoup de lignes à supprimer, il vaut mieux utiliser le Filtre avancé (élaboré).

L'exécution est beaucoup plus rapide :

Code:
Sub Filtrer()
Dim h&
h = [C65536].End(xlUp).Row
Application.ScreenUpdating = False
[IV2].Formula = "=AND(C2<>""CC1"",C2<>""CC2"",C2<>""CC3"")"
[C1].Resize(h).AdvancedFilter xlFilterInPlace, CriteriaRange:=[IV1:IV2]
On Error Resume Next 'si aucune cellule filtrée
[C2].Resize(h - 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
[C:C].AdvancedFilter xlFilterInPlace, "" 'affiche toutes les cellules
[IV2] = ""
End Sub
Fichier joint.

Edit pour zbee : le code du post #1 ne marche pas car il faut utiliser And au lieu de Or :

If Cells(i, 1).Value <> "CC1" And Cells(i, 1).Value <> "CC2" Then Rows(i).Delete

et bien sûr écrire Cells(i, 3) si l'on traite la colonne C...

A+
 

Pièces jointes

Dernière édition:
Re : suppression de lignes sous condition si différent de

Bonsoir à tous


Un piste proche mais sans l’utilisation de filtre ( 😉 Y.Gr)
Code:
Sub Macro1()
' Macro enregistrée le 10/01/2012 par l'agrafe
Range("B1:B" & [A65536].End(xlUp).Row).FormulaR1C1 = "=IF(AND(LEFT(RC[-1],2)=""CC"",ISNUMBER(1*MID(RC[-1],3,1))),0,"""")"
Range("B1:B" & [A65536].End(xlUp).Row).SpecialCells(xlCellTypeFormulas, 1).EntireRow.Delete
End Sub
 
- 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
5
Affichages
896
Réponses
15
Affichages
758
Réponses
10
Affichages
658
Réponses
5
Affichages
570
Réponses
8
Affichages
773
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…