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

Inversion de selection

chrisdu73

XLDnaute Occasionnel
Mon premier tracas après les vacances, je n'arrive pas a trouver comment inverser ma sélection.
Avec cette partie de mon code si dessous je sélectionne toutes les valeurs qui doivent être effacées de mon tableau, mais il commence à en avoir de trop, alors j'aurai voulu faire l'inverse, c'est a dire sélectionner que les codes que je voudrai garder et effacer tout les autres

Code:
Dim i As Integer
    For i = Range("d65536").End(xlUp).Row To 1 Step -1
    If Range("D" & i).Value Like "CS*" Or Range("D" & i).Value Like "CD6" Or Range("D" & i).Value Like "DDST" Or Range("D" & i).Value Like "BD*" Or Range("D" & i).Value Like "CO3" Or Range("D" & i).Value Like "CD5" Or Range("D" & i).Value Like "MB*" Or Range("D" & i).Value Like "CL*" Or Range("D" & i).Value Like "JS*" Or Range("D" & i).Value Like "A*" Or Range("D" & i).Value Like "B*" Or IsEmpty(Range("D" & i).Value) Then Rows(i).Delete
    Next i

merci de votre aide précieuse
 

JNP

XLDnaute Barbatruc
Re : Inversion de selection

Re ,
Tu peux aussi simplifier un peu tes tests :
BD* est compris dans B*
CD5 et CD6 peuvent être rassemblés en CD[56]
De même CS* et CL* en C[LS]*, A* et B* en [AB]*
Ce qui fait 4 tests de gagnés
Code:
If Range("D" & i).Value Like "C[LS]*" Or Range("D" & i).Value Like "DDST" Or Range("D" & i).Value Like "CO3" Or Range("D" & i).Value Like "CD[56]" Or Range("D" & i).Value Like "MB*" Or Range("D" & i).Value Like "JS*" Or Range("D" & i).Value Like "[AB]*" Or IsEmpty(Range("D" & i).Value) Then
Bonne suite
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Inversion de selection

Re ,
Voir même utiliser un RegExp
Code:
Sub TestD()
Dim i As Integer
With CreateObject("vbscript.regexp")
    .Global = True
    .Pattern = "C[LS].*|DDST|CO3|CD[56]|MB.*|JS.*|[AB].*"
    For i = Range("d65536").End(xlUp).Row To 1 Step -1
        If .test(Range("D" & i).Value) Or IsEmpty(Range("D" & i).Value) Then Rows(i).Delete
    Next i
End With
End Sub
Bon courage
 

chrisdu73

XLDnaute Occasionnel
Re : Inversion de selection

Re ,
Tu peux aussi simplifier un peu tes tests :
BD* est compris dans B*
CD5 et CD6 peuvent être rassemblés en CD[56]
De même CS* et CL* en C[LS]*, A* et B* en [AB]*
Merci a tous, mais pour les codes CD5 et CD6 je suis obliger de préciser car il y a le code CD2 et CD1 que je dois garder, par contre je garde l'idée des [xx]* pour une autre application.
En faite en attendant une réponse de mon post j'ai trouvé une autre solution peut être pas élégant mais qui consiste a réaliser un filtre sur ma colonne de code que je veux garder et je fais un copier coller dans uns autre feuille.
Encore une grand merci a Pierrot93 et JNP et j'aurai encore appris une chose grâce a votre aide
 

Discussions similaires

Réponses
6
Affichages
317
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…