Inversion de selection

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 !

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
 
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:
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 😎
 
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
 
- 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

Réponses
33
Affichages
3 K
R
Réponses
20
Affichages
4 K
RaVenSs
R
Réponses
1
Affichages
1 K
R
Réponses
13
Affichages
2 K
ROBYlois
R
M
Réponses
11
Affichages
2 K
Melidan2006
M
O
Réponses
12
Affichages
6 K
olivier974s
O
A
Réponses
2
Affichages
1 K
A
A
Réponses
1
Affichages
1 K
A
Réponses
0
Affichages
795
A
J
Réponses
2
Affichages
2 K
julien1025
J
M
Réponses
10
Affichages
2 K
M
M
Réponses
1
Affichages
858
L
Réponses
6
Affichages
873
lancelot92
L
Retour