Like VBA

Hello everybody

Je me tourne vers vous pour une nouvelle galère.

J'explique mon cas :

J'importe une liste de fichiers présents dans un répertoire dans une page Excel et je cherche à comparer cette liste à une liste fixe chaque jour, en conservant à chaque fois les précédents résultats.

Le problème c'est que la liste de fichiers que j'exporte varie selon les jours, et le format peut varier.

Du coup je cherchais à faire un LIKE dans ce style :

If Sheets("report analysis").Cells(iRow, 1) Like Sheets("Feuil1").Range("A1:A50") Then

Mais ca ne fonctionne pas

Si vous avez une petite idée qui pourrait m'aiguiller (ou dans le meilleur des cas le code tout fait je suis preneur aussi )

Merci d'avance

14test.xlsx (9.48 Ko)

Bonjour

Tu ne peux pas comparer une cellule avec une plage de cellule.

Dans ton cas, il te faut faire une double boucle pour comparer chaque cellule de la plage de la feuille ‘’report … ‘’ avec chaque cellule de la plage de la ‘’Feuil1’’

Comme ça, par exemple, si tu lances la macro à partir de la feuille "report..." :

For iR = 4 To Range("A" & Rows.Count).End(xlUp).Row
    For iF1 = 1 To Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
        If Range("A" & iR) = Sheets("Feuil1").Range("A" & iF1) Then
            '...
        End If
    Next iF1
Next iR

OK ?

Bye !

Bonjour gmb.

Merci pour la piste mais là je ne fais qu'une simple comparaison.

Comme je le disais mon problème est que je ne trouverais jamais exactement la même chaîne de caractères vu que je compare une liste fixe avec une liste de fichiers qui va voir son nom évoluer au fil des jours et le fait que, lorsqu'un fichier va sortir vide il va y avoir "NO DATA" dans le titre.

C'est pour cela que je voulais utiliser un LIKE afin de trouver une chaîne qui s'approche de ma chaîne initiale.

RE

Bon après un peu de galère j'ai finalement adapté le code de gmb.

J'ai remplacé la condition

 If Range("A" & iR) = Sheets("Feuil1").Range("A" & iF1) Then

par

If InStr(Sheets("Feuil1").Range("A" & iF1).Text, Sheets("report analysis").Range("A" & iR).Text) <> 0 Then

Merci pour l'aide.

Bonne journée

Pour utiliser la fonction ‘’like’’, il te faut connaitre la partie commune qu’on trouve dans les deux éléments que tu veux comparer, et tu remplaces ce qui est différent entre les deux par des caractères spécifiques : ‘’ ?’ ’ pour une lettre ou ‘ ’ * ’’ pour un groupe de lettres.

Je t’invite à saisir ‘’like’’ dans un module et à taper sur la touche F1. Tu auras de plus amples explications sur l’opérateur ‘’like’’

OK ?

Bye !

Rechercher des sujets similaires à "like vba"