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 :rolleyes: :
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 :p
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 :cool:
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Inversion de selection

Re :rolleyes:,
Voir même utiliser un RegExp :p
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 :cool:
 

chrisdu73

XLDnaute Occasionnel
Re : Inversion de selection

Re :),
Tu peux aussi simplifier un peu tes tests :rolleyes: :
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
273

Statistiques des forums

Discussions
312 391
Messages
2 087 950
Membres
103 683
dernier inscrit
Cescodelvar