Suppression de lignes sous deux conditions cumulatives
Résolu/Fermé
Tara4002
Messages postés
4
Date d'inscription
mercredi 26 novembre 2014
Statut
Membre
Dernière intervention
27 novembre 2014
-
26 nov. 2014 à 17:09
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 27 nov. 2014 à 14:48
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 27 nov. 2014 à 14:48
A voir également:
- Suppression de lignes sous deux conditions cumulatives
- Forcer suppression fichier - Guide
- Deux ecran pc - Guide
- Site de vente en ligne particulier - Guide
- Partage de photos en ligne - Guide
- Deux comptes whatsapp - Guide
2 réponses
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
26 nov. 2014 à 17:24
26 nov. 2014 à 17:24
Bonjour,
Sub sup() 'Je cherche une macro qui me permettrait de supprimer les lignes qui respecteraient deux conditions cumulées: '- que la celulle de la colonne F comprenne la valeur "espèces" '- que la cellule de la colonne C soit égale à la cellule de la colonne C de la ligne inférieure 'J 'ai essayé de mixer certaines macros proposées sur les forums mais le résultat est catastrophique.... 'Merci beaucoup par avance Dim LasRow As Long lastrow = Derniere_Ligne(ActiveSheet.Name) Dim valCduDessous As String valCduDessous = "" 'On parcoure les lignes en partant du bas.. For i = lastrow To 1 Step -1 valF = Cells(i, 6).Value valC = Cells(i, 3).Value Debug.Print " Ligne : " & i & " valeur colonne F= " & valF & " valeur colonne C= " & valC & " valeur colonne C du dessous= " & valCduDessous If valF = "espèces" And valC = valCduDessous Then Debug.Print "A supprimer..." ' Ici mettre le code de suppression de la ligne Rows(i).Delete End If valCduDessous = Cells(i, 3).Value Next End Sub Function Derniere_Ligne(Nom_Feuille As String) As Long Sheets(Nom_Feuille).Activate Derniere_Ligne = Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row + 1 'pour les lignes End Function
Tara4002
Messages postés
4
Date d'inscription
mercredi 26 novembre 2014
Statut
Membre
Dernière intervention
27 novembre 2014
26 nov. 2014 à 17:48
26 nov. 2014 à 17:48
Quelle réactivité et efficacité et en plus ça fonctionne!
Vous êtes génial(e)!
Merci mille fois
Vous êtes génial(e)!
Merci mille fois
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
26 nov. 2014 à 17:51
26 nov. 2014 à 17:51
réactivité et efficacité ... ce sont mes deuxième et troisième prénom ;-)
Bonne soirée.
Bonne soirée.
Tara4002
Messages postés
4
Date d'inscription
mercredi 26 novembre 2014
Statut
Membre
Dernière intervention
27 novembre 2014
27 nov. 2014 à 11:42
27 nov. 2014 à 11:42
Bonjour,
Je ne sais pour quelle raison dans un de mes fichier les lignes sont inversées, je m'explique :
Au lieu de comparer la cellule inférieure de la colonne C, je dois comparer à la cellule supérieure.
Je me suis dit "pas compliqué je modifie la macro" en ce sens, mais pfffff.... Je n'ai malheureusement qu'un prénom ;-)
Merci pour votre aide
Je ne sais pour quelle raison dans un de mes fichier les lignes sont inversées, je m'explique :
Au lieu de comparer la cellule inférieure de la colonne C, je dois comparer à la cellule supérieure.
Je me suis dit "pas compliqué je modifie la macro" en ce sens, mais pfffff.... Je n'ai malheureusement qu'un prénom ;-)
Merci pour votre aide
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
>
Tara4002
Messages postés
4
Date d'inscription
mercredi 26 novembre 2014
Statut
Membre
Dernière intervention
27 novembre 2014
27 nov. 2014 à 11:45
27 nov. 2014 à 11:45
Il devrait suffire de changer le sens de la boucle ...
supprime le step-1
Inverse les variables dans le for..
for i=1 to lastrow...
supprime le step-1
Inverse les variables dans le for..
for i=1 to lastrow...
Tara4002
Messages postés
4
Date d'inscription
mercredi 26 novembre 2014
Statut
Membre
Dernière intervention
27 novembre 2014
27 nov. 2014 à 11:52
27 nov. 2014 à 11:52
merci beaucoup je vais tenter ça... Si pas de nouvelle c'est que ça a fonctionné!
Excellente journée!
Excellente journée!
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
>
Tara4002
Messages postés
4
Date d'inscription
mercredi 26 novembre 2014
Statut
Membre
Dernière intervention
27 novembre 2014
27 nov. 2014 à 14:48
27 nov. 2014 à 14:48
Arf.. oupss.. désolé...
j'ai répondu un peu trop vite..
j'avais oublié que tu faisais une suppression... et dans ce cas là.. il vaut mieux faire la boucle en partant du bas...
donc, essayes plutot ce code là :
j'ai répondu un peu trop vite..
j'avais oublié que tu faisais une suppression... et dans ce cas là.. il vaut mieux faire la boucle en partant du bas...
donc, essayes plutot ce code là :
Sub sup2() Dim LasRow As Long lastrow = Derniere_Ligne(ActiveSheet.Name) Dim valCduDessus As String valCduDessus = "" 'On parcoure les lignes en partant du bas.. For i = lastrow To 2 Step -1 valCduDessus = Cells(i - 1, 3).Value valF = Cells(i, 6).Value valC = Cells(i, 3).Value Debug.Print " Ligne : " & i & " valeur colonne F= " & valF & " valeur colonne C= " & valC & " valeur colonne C du dessus= " & valCduDessus If valF = "espèces" And valC = valCduDessus Then Debug.Print ">>> A supprimer..." Rows(i).Delete End If Next End Sub