Bonjour à tous,
Je sais que le sujet a été vu et revu, mais je ne parviens pas à faire la suppression tel que je le souhaite.
En réalité, j'ai plusieurs lignes à supprimer en fonction de différents paramètres.
- Si cellule de colonne M contient 3 alors supprimer la ligne
- Si cellule de la colonne M contient 1 et cellule colonne O contient 2 alors supprimer la ligne
- Si cellule de la colonne M contient 1 et cellule colonne O contient 3 alors supprimer la ligne
- Effacer ligne dont colonne I ne contient pas 2 ou 3
J'avais donc utiliser le code suivant pour la première condition :
et pour la deuxième :
Je dois admettre que je ne me suis pas foulé, j'ai pris 100 000 comme limite car je sais que mon fichier n'ira jamais jusque là.
Sauf qu'en faisant ça pour le premier code, je me retrouve avec des trous une fois le filtre supprimé (et je trouve ça laborieux de d'abord trier puis ensuite effacer puis remettre... il doit y avoir un moyen plus "joli"), et pour le deuxième, si jamais dans la colonne O je n'ai pas de 2 ou de 3 du coup il ne filtre rien et m'efface tout (et donc pas ce qu'il faut...)
la dernière partie je ne m'en suis pas occupé encore...
Donc voilà, ma question est que faut-il faire pour que tous fonctionne selon vous...
Merci
PS : je suis embêtant mais je ne peux même pas fournir de fichier d'exemple
Je sais que le sujet a été vu et revu, mais je ne parviens pas à faire la suppression tel que je le souhaite.
En réalité, j'ai plusieurs lignes à supprimer en fonction de différents paramètres.
- Si cellule de colonne M contient 3 alors supprimer la ligne
- Si cellule de la colonne M contient 1 et cellule colonne O contient 2 alors supprimer la ligne
- Si cellule de la colonne M contient 1 et cellule colonne O contient 3 alors supprimer la ligne
- Effacer ligne dont colonne I ne contient pas 2 ou 3
J'avais donc utiliser le code suivant pour la première condition :
Code:
Sub sup_role1_3()
Sheets("O2").Select
Range("O1").Select
ActiveSheet.Range("$A$1:$CL$100000").AutoFilter Field:=13, Criteria1:="=3"
Range("A2:CL100000").Select
Selection.Delete
End Sub
et pour la deuxième :
Code:
Sub role1_3_role2_2()
On Error Resume Next
Sheets("O2").Select
Range("O1").Select
ActiveSheet.Range("$A$1:$CL$100000").AutoFilter Field:=13, Criteria1:="=1"
ActiveSheet.Range("$A$1:$CL$100000").AutoFilter Field:=15, Criterial:="=2", _
Operator:=xlOr, Criteria2:="=3"
Range("A2:CL100000").Select
Selection.Delete
End Sub
Je dois admettre que je ne me suis pas foulé, j'ai pris 100 000 comme limite car je sais que mon fichier n'ira jamais jusque là.
Sauf qu'en faisant ça pour le premier code, je me retrouve avec des trous une fois le filtre supprimé (et je trouve ça laborieux de d'abord trier puis ensuite effacer puis remettre... il doit y avoir un moyen plus "joli"), et pour le deuxième, si jamais dans la colonne O je n'ai pas de 2 ou de 3 du coup il ne filtre rien et m'efface tout (et donc pas ce qu'il faut...)
la dernière partie je ne m'en suis pas occupé encore...
Donc voilà, ma question est que faut-il faire pour que tous fonctionne selon vous...
Merci
PS : je suis embêtant mais je ne peux même pas fournir de fichier d'exemple