Comparaison du contenue d'une cellule avec like

Fermé
Mix3X - 22 avril 2016 à 14:31
 Stif - 22 avril 2016 à 16:15
Bonjour,
J'ai un petit souci avec une macro VBA que je tente de faire , je vous expliquer j'ai une liste de fichier dans une colonne de ma feuille (nomdufichier.extension)
et avec ma macro j'aimerais pouvoir ne garder que les fichier qui commence par PV et avec l'extension pdf du coup je pense faire ça avec la fonction "like" mais il retourne une erreur d’exécution 438 ,
Option Compare Binary 
Option Explicit

Private Sub Scan()

Dim cell As Range ' defini la taille du scan a une cellule
Dim Var1 As String ' recupere la valeur de la cellule scanner
Dim Var2 ' recupere le numero de colone de la cellule scanner
Dim DernLigne As Long ' recupere le numero de la derniere ligne ecrite dans le tableau de lecture
Dim Plage As Range ' defini la plage de cellule a scanner



DernLigne = Worksheets("scan-dt17").Range("A" & Rows.Count).End(xlUp).Row ' stockage de la derniere ligne a lire

Set Plage = Worksheets("scan-dt17").Range("C1:C" & DernLigne)



With Worksheets("scan-dt17")
'Utilisation de la propriété UsedRange dans une boucle For Each... Next
For Each cell In Plage
Var1 = cell.Value
Var2 = cell.Line


If Var1 Like "PV*pdf" Then

MsgBox "ok"
End If


Next
End With

MsgBox " Scan Terminé"
End Sub


j'ai pas mal cherché et relu la doc MSDN pas moyen de comprendre ce qui bloque .
merci d'avance a ceux qui pourront me répondre et bonne journée aux autres .

A voir également:

3 réponses

Bonjour, essaies cette ligne à la place de If Var1 Like "PV*pdf" Then :

If Left(Var1, 2) = "PV" And Right(Var1, 3) = "pdf" Then

sinon avec like : If Var1 Like "PV*" And Var1 Like "*pdf" Then

A noter que PV est en majuscules et pdf en minuscules
0
Alors deja merci pour la reponse rapide , mais toujours pareil erreur d'execution 438 . j'ai également essayer de faire la comparaison dans une variable booléene juste pour garder la reponse et faire un IF avec = true , mais ca me sort toujours l'erreur 438...
0
Mix3X Messages postés 2 Date d'inscription vendredi 22 avril 2016 Statut Membre Dernière intervention 22 avril 2016
22 avril 2016 à 15:19
bon je suis un abruti , c’était le var2 = cell.line qui posait problème parce que l'attribut correct était .row donc voila ce coup ci ça fonctionne
0
Ah oui en effet... j'ai testé ton code et l'erreur vient visiblement de Var2, si son but est de récupérer la colonne ce devrait etre Var2 = cell.Column non?

Et sinon ton If Var1 Like "PV*pdf" Then fonctionne très bien d'ailleurs
0
Mix3X Messages postés 2 Date d'inscription vendredi 22 avril 2016 Statut Membre Dernière intervention 22 avril 2016
22 avril 2016 à 16:01
mon but c était d avoir le numero de la ligne sur laquelle ma condition est rempli comme ca je peut recupere le contenu d'un cellule sur la ligne mais dans une autre colone en gros je scan la colonne C jusqu a avoir un fichier qui commence par PV et fini avec pdf la mon var2 me donne le numéro de la ligne et je recupere le contenu de la cellule sur la même ligne mais en colonne A avec x = cell(var2,1).value

voila j'avance tout doucement ^^ maintenant c 'est la recup qui déconne je sais pas pourquoi il me récupère le contenu d 'une autre cellule a chaque fois .
0
Je regarde ça tout à l'heure et te tiens au jus...
Peut-etre ton Var2 = cell.row devrait se trouver après ton If Var1 Like "PV*" And Var1 Like "*pdf" Then
de manière à récuperer le num de la ligne seulement si la condition est remplie
0