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

Supprimer Ligne avec condition

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

Niouf

XLDnaute Occasionnel
Salut les gars,

Dites moi, j'essaye de supprimer une ligne entire sous deux conditions :

- Premiere condition, je scanne la premiere colonne, et je supprime la ligne a chaque fois que la cellule corrspondante commence par un R

- Deuxieme condition, je scanne encore cette premiere colonne, et je supprime la ligne a chaque fois aue la cellule correspondante ne commence pas par une letter

J'ai a peu pret reussi pour la premiere, mais je seche pour la deuxieme, voir fichier ci joint 🙂

En esperant avoir ete clair ...
 

Pièces jointes

Re : Supprimer Ligne avec condition

Bonjour à toutes et à tous,

Salut les gars...

Misogyne ?

Comme ceci ?

Code:
Option Explicit
Sub Ligne_supprimer_selon()
    Dim c As Range, i As Long
    With Application: .ScreenUpdating = False: .Calculation = xlManual: .EnableEvents = False: End With
    For i = Cells(Rows.Count, "a").End(xlUp).Row To 2 Step -1
        If Left(Range("a" & i), 1) = "R" Or IsNumeric(Range("a" & i)) Then Rows(i).Delete
    Next
    With Application: .EnableEvents = True: .Calculation = xlAutomatic: .ScreenUpdating = True: End With
End Sub
 
Re : Supprimer Ligne avec condition

Bonjour
Peut etre comme ceci
Sub Test()
Dim Cel, rgNom As Range
Set rgNom = Sheet1.Range("A2", Sheet1.Range("A65536").End(xlUp))
For Each Cel In rgNom
If Left(Cel(1, 1), 1) = "R" Or IsNumeric(Left(Cel(1, 1), 1)) Then Cel.EntireRow.Delete
Next Cel
End Sub

A++
 
Re : Supprimer Ligne avec condition

Bonjour.

Ma version :
VB:
Sub Test()
LignesOùCondR1C1(Rows(2), "UPPER(LEFT(RC1,1))=""R""").Delete
LignesOùCondR1C1(Rows(2), "EXACT(UPPER(LEFT(RC1,1)),LOWER(LEFT(RC1,1)))").Delete
End Sub

Function LignesOùCondR1C1(ByVal LigneDéb As Range, ByVal CondR1C1 As String) As Range
Rem. ——— Lignes entières partant de LigneDéb qui vérifient une condition R1C1 CondR1C1.
Dim Lignes As Range, ColTrv As Range
With LigneDéb.Worksheet.UsedRange
   Set Lignes = LigneDéb.EntireRow.Resize(.Rows.Count + .Row - LigneDéb.Row)
   Set ColTrv = Intersect(.Columns(.Columns.Count + 1), Lignes): End With
ColTrv.FormulaR1C1 = "=1/(" & CondR1C1 & ")"
On Error Resume Next
Set LignesOùCondR1C1 = ColTrv.SpecialCells(xlCellTypeFormulas, 1).EntireRow
ColTrv.Delete xlShiftToLeft
End Function
 
- 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

K
Réponses
10
Affichages
806
K
D
Réponses
1
Affichages
564
darbouka33
D
Réponses
12
Affichages
1 K
L
Réponses
9
Affichages
1 K
LordMarshall
L
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…