XL 2013 Comparaison entre deux chaine de caractères

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
 

Hasco

XLDnaute Barbatruc
Repose en paix
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:

patricktoulon

XLDnaute Barbatruc
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
;)
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 105
dernier inscrit
Joffrette