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

suppression ligne sous condition

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

R

roni

Guest
Bonjour,

Je voudrai supprimer les lignes d'un tableau déjà trié par la colonne E avec comme condition 9 en colonne E et garder les autres lignes .

Merci d'avance
 
Re, bonjour Lone-Wolf

@Lone-wolf
Plaisanteries mises à part, après avoir lu le code de job75, j'ai remisé le mien au placard 😉
Mais pour répondre à ta question, voici ma macro customisée à ton attention 🙂
NB: à tester sur le fichier joint par le demandeur (car macro basée sur la structure de celui-ci)
VB:
Sub MacroSpecialLoupSolitaire()
Dim Lig&, LASTEXIT2NOWHERE As Range
Lig = Cells(Rows.Count, 5).End(xlUp).Row - 1
Set LASTEXIT2NOWHERE = Cells(3, Columns.Count)
With LASTEXIT2NOWHERE
    .Resize(Lig - 1).FormulaR1C1 = "=IF(RC5=9,""Lone-Wolf"",0)"
    .SpecialCells(-4123, 2).EntireRow.Delete
    .ClearContents
End With
End Sub
 
Re Jean Marie

@Staple1600

Dans le cas ou la personne veux choisir un nombre, sans aller modifier la macro. Moi j'ai essaié en mettant en nombre en M1, et dans la formule précédente R[1]C[8]. Je ne sais pas si on écrit comme ceci; et la macro me donne une erreur.

Edit: Merci pour avoir mis mon pseudo comme nom de macro. 😉

Réédit: j'ai trouvé. "=IF(RC5=R1C13,""Lone-Wolf"",0)"
 
Dernière édition:
Re

@Lone_Wolf
Je te laisse tester 😉
Tu lances la macro test1 ou test2
Code:
Sub test1()
'exemples de syntaxe : suppression en colonne 2, valeur par défaut: 9
preparation
LoupSolitaireVeutDuParamétrable "2"
End Sub
Sub test2()
'exemples de syntaxe : ici suppression en colonne 5 si 3
preparation
LoupSolitaireVeutDuParamétrable "5", "3"
End Sub

Private Sub LoupSolitaireVeutDuParamétrable(Colonne, Optional Valeur_Pour_Suppression As String = 9)
Dim Lig&, LASTEXIT2NOWHERE As Range
Lig = Cells(Rows.Count, 1).End(xlUp).Row - 1
Set LASTEXIT2NOWHERE = Cells(2, Columns.Count)
On Error Resume Next
With LASTEXIT2NOWHERE
    .Resize(Lig).FormulaR1C1 = _
        "=IF(RC" & Colonne & "=" & Valeur_Pour_Suppression & ",""Lone-Wolf"",0)"
    .SpecialCells(-4123, 2).EntireRow.Delete
    .CurrentRegion.ClearContents
End With
End Sub

Private Sub preparation()
Sheets.Add
Application.ScreenUpdating = False
[A1] = "ITEM1": [A1].AutoFill [A1:H1], 0
[A2:H81].FormulaR1C1 = "=MOD(ROW()*COLUMN(),9)+1"
[A2:H81].Value = [A2:H81].Value
End Sub
 
Re

@Lone-wolf
Comme son nom l'indique, elle prépare le terrain, c'est à dire qu'elle créé des données pour test
Cela évite qu'éventuellement un jour peut-être un futur lecteur de ce fil qui testerai la seule macro nommée LoupSolitaireVeutDuParamétrable sur une feuille vide ou sur une feuille ne contenant pas de nombres vienne ici écrire:
"Staple1600: désolé mais ta macro ne marche pas"
😉
 
Bonjour roni, JM, Lone-wolf,

@ JM, avec ton code, si le tableau est très grand et non trié sur la colonne E, la suppression des lignes peut prendre beaucoup de temps.

Ici on accélère avec un tri pour regrouper les valeurs d'erreur en bas du tableau :
Code:
Sub Supprimer_9_colonne_E()
With Feuil1.UsedRange 'CodeName de la feuille
    If Application.CountIf(.Columns(5), 9) = 0 Then Exit Sub
    With .Columns(.Columns.Count + 1) 'colonne auxiliaire
        Application.ScreenUpdating = False
        If .Parent.FilterMode Then .Parent.ShowAllData 'si la feuille est filtrée
        .FormulaR1C1 = "=IF(RC5=9,1/0)"
        .Value = .Value 'supprime les formules
        .EntireRow.Sort .Cells, xlAscending, Header:=xlYes 'tri pour accélérer
        .SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete
        .ClearContents
    End With
    With .Parent.UsedRange: End With 'actualise les barres de défilement
End With
End Sub
Fichier joint.

A
 

Pièces jointes

- 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
335
Réponses
6
Affichages
267
Réponses
23
Affichages
425
  • Question Question
Microsoft 365 Fonction si
Réponses
7
Affichages
127
Réponses
5
Affichages
449
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…