XL 2013 Comparaison entre deux chaine de caractères

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 !

controlo

XLDnaute Occasionnel
Bonjour les amis du forum ,

Je me tourne vers vous car je but sur une comparaison de chaine de caractères en vba. J'essaye de vous expliquer : dans un répertoire j'ai plusieur fichiers pdf nommés xxxx 1-22 ou xxxx 10-22 ou xxxx101-22 , xxxx 111-22 et j'ai élaboré une macro qui va chercher dans un tableau excel une autre information qui me conduit à désigner ,par exemple le fichier xxxx 1-22 à ouvrir .La ou je but c'est que mon fichier fonctionne mais ne n'ouvre pas que le fichier xxxx 1-22 mais aussi le fichier xxxx 11-22.Pour cela voila le code qui permet de choisir le fichier à ouvrir :
If oFile.Name Like "*" & tch & "*.pdf" Then.
La variable tch contient par exemple 1-22 : c'est le fichier à recherché et à ouvrir et oFile.Name le nom du fichier qu'il trouve dans le répertoire , mais pour lui "11-22" et "1-22" sont semblables , alors que pour moi le fichier est le même.Donc avez-vous une idées pour effectuer une comparaison plus précise que Like "*" & tch & "*.pdf" ?

Merci pour votre aide
 
Bonjour,=

l'astérisque (*) remplace n'importe quel(s) caratère(s) => "11-22" like "*1-22" = TRUE
le point d'interrogation remplace (?) 1 caratère => "1-22" like "?-22" = true

Mais peut-être que si vous incluiez l'espace après le joker * cela le ferait "* " & tch & "*.pdf"
vous pourriez avoir "Machin 1-22.pdf" comme "Machin 11-22.pdf" en supposant que "1-22" ou "11-22" soit bien le contenu de tch

Cordialement

[Edit]hello @sylvanu, presque la même 🙂 [/Edit]
 
Dernière édition:
Bonsoir à tous
juste comme ça en passant
plutôt que d'utiliser le calculateur avec like et le joker
utilisez simplement le INSTR avec l'espace
VB:
Sub test()
chaine1 = "machin 11-22.pdf"
chaine2 = "machin 1-22.pdf"
cherche = " 1-22"
contrl1 = InStr(1, chaine1, cherche, vbTextCompare) > 0
contrl2 = InStr(1, chaine2, cherche, vbTextCompare) > 0

MsgBox "chaine1: " & contrl1 & vbCrLf & "chaine2 : " & contrl2
End Sub
😉
 
- 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

Retour