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

Macro suppression lignes

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

F

fif2208

Guest
Bonjour le forum,

Une nouvelle fois j'ai besoin de vos services.

Cette fois, c'est pour le code d'une macro qui supprimerait toutes les lignes de la colonne C ne contiennant pas la valeur "A payer".

J'ai trouvé quelques codes de macros qui parlaient un peu de ce sujet mais j'ai été incapable de les adapter à mon problème.

Je vous remercie de votre aide
 
Re : Macro suppression lignes

Bonjour Fif2208, bonjour le forum,

Un essai ci dessous, qui fonctionne chez moi. La feuille s'appelle ici "Feuil1", à adapter bien-sûr! 😉
Activer les macros et placer cette macro dans un module standard.

VB:
Sub SupprimeLesLignes()

'ici on fait une boucle sur i en partant du nombre de lignes +1 en remontant jusqu'à 1 au pas de -1
For i = Worksheets("Feuil1").UsedRange.Rows.Count + 1 To 1 Step -1
    
    If Worksheets("Feuil1").Range("C" & i).Value <> "A payer" Then 'test si la cellule C de la ligne i n'est pas a payer
        Worksheets("Feuil1").Rows(i).Delete 'suppression
    End If

Next i


End Sub

Note: Dans les macros, il est nécessaire de supprimer les lignes en remontant.
Sinon en descendant, la ligne supprimée est immédiatement remplacée par celle du dessous : la ligne i+1 devient donc ligne i, ce qui compliquerait la macro si on descendait...

Note 2: On pourrait faire le test de la cellule colonne C avec la commande "Not" *** "Like" pour faire des tests plus précis.

Bonne journée 🙂
 
Re : Macro suppression lignes

Bonjour,

En supposant le début de ta base de données en A1, et la colonne C contenant "A payer", tu peux essayer ainsi :

Code:
Sub suppression()
Range("A1").AutoFilter Field:=3, Criteria1:="<>A payer", Operator:=xlAnd
If MsgBox("Etes vous sûr?", vbYesNo) = vbYes Then
    If Range("_FilterDataBase").SpecialCells(xlCellTypeVisible).Rows.Count > 1 Then
        Range("_FilterDataBase").Offset(1, 0).Resize(Range("_FilterDataBase"). _
            Rows.Count - 1).SpecialCells(xlCellTypeVisible).Delete Shift:=xlUp
    End If
Else
     MsgBox "Annulé"
End If
Range("A1").AutoFilter
End Sub

bonne soirée
 
Re : Macro suppression lignes

Merci à tous les deux pour vos réponses rapides.

Pedrag31, ta solution est simple et me convient bien.

Bonne soirée à tous.
 
- 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

  • Question Question
XL 2021 Macro
Réponses
6
Affichages
310
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…