Bonjour tout le monde,
Je debute en VBA et je souhaiterai vérifier si un fichier et present dans un dossier.
Comment peut on faire pour permettre ceci.
Merci a vous
Version imprimable
Bonjour tout le monde,
Je debute en VBA et je souhaiterai vérifier si un fichier et present dans un dossier.
Comment peut on faire pour permettre ceci.
Merci a vous
Salut,
si tu connais le nom complet, voici un exemple pour le faire :
et pour tester l'existe du fichier "C:\windows\explorer.exe" tu faisCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Function fichier_existe(fullname as string) As Boolean Dim res As Variant res = Dir(fullname, vbSystem) If res = "" Then MsgBox "fichier non trouvé " & fullname fichier_existe = false Exit Function else fichier_existe = true End If End Function
Code:
1
2
3
4
5
6
7 dim fichier as string fichier = "C:\windows\explorer.exe" if fichier_existe(fichier) then .... endif
Merci pour ta reponse mais si on se ve pas une fonction mais juste un morceau de code a ajouter au code initial comme ceci :
sauf que sa ne marche pas sa me dit tout le temps qu'il n'existe pasCode:
1
2
3
4
5
6
7
8 nom = Cells(7, 2) & ".JPG" Set filesys = CreateObject("Scripting.FileSystemObject") le_chemin_du_fichier = "images/ " & nom & " " If filesys.FileExists(le_chemin_du_fichier) Then MsgBox "il existe" Else MsgBox "il n'existe pas" End If
Merci pr ton aide
je vois au moins 2 problèmes :
1) remplace / par \ partoutCitation:
le_chemin_du_fichier = "images/ " & nom & " "
2) tu ne donnes pas le chemin complet de ton fichier. Si tu veux savoir ou ton code cherches et après quoi, tu fais
donc pour tester avec mon code il te faudrait :Code:
1
2debug.print Activeworkbook.path & "images\" nom
Code:
1
2
3
4
5
6
7
8 le_chemin_du_fichier = "images\" & nom res = Dir(le_chemin_du_fichier, vbSystem) If res = "" Then MsgBox "il n'existe pas" Else MsgBox "il existe" endif
Merci beaucoup
Mais je comprend pas le fichier existe puis il me dit qu'il n'existe pas .
Donne moi des détails.
je ne te comprends pas.
merci de rattacher tes remarques à des lignes de code avec des valeurs de variables.
Code:
1
2
3
4
5
6
7
8 nom = Cells(7, 2) & ".JPG" le_chemin_du_fichier = "images\" & nom res = Dir(le_chemin_du_fichier, vbSystem) If res = "" Then MsgBox "il n'existe pas" Else MsgBox "il existe" End If
Tu vois j'ai un catalogue de piéce détachées et ce que je veux c'est lorqu'il y a une image qui porte le ref de le piéce cela me fasse un appareille foto et lorsqu'on clic dessus sa m'affiche la foto.Cela marche nikel sauf que sa me met des appareille foto a toute les piéce et moi je veux qu'il y ai un appareil foto quand il y a une image dans le fichier image\Le_nom_de_laRef.
Ce que je comprend pas c'est la foto existe dans le fichier et sa me met q'il n'existe pas.
Merci de ton aide
Bonjour,
Dir ne le trouvera pas si le fichier a un attribut "caché" ...
essaye donc avec :
eu lieu deCode:res = Dir("d:\essai.txt", vbHidden Or vbNormal)
en changeant bien évidemment d:\essai.txt par ton chemin complet, hein ...Code:res = Dir("d:\essai.txt", system)
Edit :
et
n'est pas du tout un chemin completCode:le_chemin_du_fichier = "images\" & nom
C'est quoi le chemin du répertoire de photos ?
Donne moi aussi un exemple de nom de photos.
bonjour,
te mettra tjs une erreur, tu doit lui envoyer un chemin absolu.Citation:
"images\" & nom
dans ton cas, il n'y a aucun renseignement sur le lecteur employé, etc...
par ex
serait correctCode:"c:\images" & nom
Je me tue à le dire...:roll:
je sais, c'est pour ça que j'en remet une couche!Citation:
Je me tue à le dire... :roll:
;)
C'est bon les gars sa fonctionne
Merci pour votre aide
J'orai encore une question.
Est ce que c'est possible de mettre un chemin relatif.
Merci de votre réponse
Du genre de quoi ?
Oui, bien évidemment !
En général on choiisit le dossier de l'application, pour y mettre son dossier toto et s'y référer ainsi :
ce qui fait que si fichier se nomme "titi.txt", on se réfère ainsi à ce fichier :Code:dossier = Application.path & "\toto"
Tu peux bien évidemment choisir un autre dossier (s'il est fixe et connu) que celui de ton application ...Code:chemin_complet_fichier = dossier & "\" & fichier
Sa ne marche pas quand je met le relatif
Pouvez vous m'aidez svpCode:le_chemin_du_fichier = "V:\sav\Alan\Cata avec photo\version complete\web2008\pages\images\" & nom
Merci d'avance
Oui mait tout dépend où ton chemin doit pointer au final... Tu peux aussi utiliser des variables d'environnement si tu souhaites utiliser ta macro pour plusieurs utilisateurs ou machines...
Par exemple:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Sub VariableEnvironnement() Debug.Print "USERNAME : " & Environ("USERNAME") ' neo2k2 Debug.Print "USERDOMAIN : " & Environ("USERDOMAIN") ' WORKGROUP Debug.Print "USERPROFILE : " & Environ("USERPROFILE") ' C:\Documents and Settings\neo2k2 Debug.Print "ALLUSERSPROFILE : " & Environ("ALLUSERSPROFILE") ' C:\Documents and Settings\All Users Debug.Print "APPDATA : " & Environ("APPDATA") ' C:\Documents and Settings\neo2k2\Application Data Debug.Print "COMPUTERNAME : " & Environ("COMPUTERNAME") ' MON_PC Debug.Print "HOMEDRIVE : " & Environ("HOMEDRIVE") ' C: Debug.Print "HOMEPATH : " & Environ("HOMEPATH") ' \Documents and Settings\neo2k2 Debug.Print "LOGONSERVER : " & Environ("LOGONSERVER") ' \neo2k2 Debug.Print "SYSTEMDRIVE : " & Environ("SYSTEMDRIVE") ' C: Debug.Print "SYSTEMROOT : " & Environ("SYSTEMROOT") ' C:\WINDOWS Debug.Print "TEMP : " & Environ("TEMP") ' C:\DOCUME~1\neo2k2\LOCALS~1\Temp End Sub
Qu'affiche donc :
puis vérifie que ce qui est affiché correspond bien à un fichier existant (chemin complet)... !!!Code:msgbox "V:\sav\Alan\Cata avec photo\version complete\web2008\pages\images\" & nom
Et je ne vois là rien de relatif !!!!
Ce chemin correspond a la photo.
Je sais qu'il n'est pas relatif c'est justement la question. Comment le rendre relatif