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

macro suppression de ligne conditionnelle

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 !

jeremie.ferre

XLDnaute Nouveau
Bonjour,

J'aimerai mettre dans une macro l'instruction suivante: "si dans l'une des lignes de la colonne C, il y a écrit "truc-chose" (en fait l'idéal serait même la valeur d'une cellule, par exemple, ce qu'il y a écrit dans la cellule C4), alors supprimer cette ligne".

Je sais mettre un if dans une macro, je ne sias simplement pas lui dire "cherche dans la colonne C si,...."

Est-ce possible?

merci de votre aide.
 
Re : macro suppression de ligne conditionnelle

J'était en train de tester un truc du style:

Dim i As Integer
Dim valeurdelacelluleC4 As String
For i = 91 To 2000
valeurdelacelluleC4 = Sheets("feuillet 1").Cells(i, 3).Value
If StrComp(Sheets("feuillet 1").Cells(4, 3).Value, valeurdelacelluleC4) Then
Sheets("feuillet 1").Cells(i, 3).EntireRow.Delete
End If
Next i

Mais ca ne marche pas, au bout de 5 minutes la macro dure toujours....

Je teste ce que tu m'as donné.

merci
 
Re : macro suppression de ligne conditionnelle

et après tu veux supprimer la ligne si c'est bon ?

alors ça devrait donner :

Code:
If Application.Worksheetfunction.Countif(Sheets("feuillet 1").Range("C1:C6 5536"),Sheets("feuillet 1").Range("C4").value)>0 then
Sheets("feuillet 1").Range("A" & Application.Worksheetfunction.Match(Sheets("feuillet 1").Range("C4").value,Sheets("feuillet 1").Range("C1:C65536"),0)).entirerow.delete
end if
 
Re : macro suppression de ligne conditionnelle

la fonction Match (EQUIV en français) donne la position de ta valeur dans la plage
Comme dans mon exemple, je commençais en ligne 1 (C1:C65536), je n'avais pas de décalage à gérer
Comme dans ton exemple tu commence en ligne 3 (C3:C10), il faut que tu ajoutes 2 au résultat du Match :

Code:
Sheets("feuil1").Range("A" & 2 + Application.WorksheetFunction.Match(Sheets("feuil1").Range("C1").Value, Sheets("feuil1").Range("C3:C10"), 0)).EntireRow.Delete
 
Re : macro suppression de ligne conditionnelle

Arf non ca ne marche pas complètement en fait,
En effet, si il y a plus d'une ligne qu'il faudrait supprimé la macro ne marche pas, elle ne supprime qu'une seule ligne...
(c'est à dire que si dans mon fichier exemple je met 2 paul, la macro ne supprime qu'une seule ligne et laisse 1 paul)

Y'aurait-il une astuce ?


Merci
 
Re : macro suppression de ligne conditionnelle

peut-être avec quelque chose du type :


Code:
Do While Application.WorksheetFunction.CountIf(Sheets("feuil1").Range("C3:C10"), Sheets("feuil1").Range("C1").Value) > 0
Sheets("feuil1").Range("A" & 2 + Application.WorksheetFunction.Match(Sheets("feuil1").Range("C1").Value, Sheets("feuil1").Range("C3:C10"), 0)).EntireRow.Delete
Loop
 
- 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

  • Question Question
Microsoft 365 MFC dans tableau
Réponses
2
Affichages
251
Réponses
6
Affichages
190
Réponses
5
Affichages
152
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…