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
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 fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 \ partoutle_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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2debug.print Activeworkbook.path & "images\" nom
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 de
Code : Sélectionner tout - Visualiser dans une fenêtre à part res = Dir("d:\essai.txt", vbHidden Or vbNormal)
en changeant bien évidemment d:\essai.txt par ton chemin complet, hein ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part res = Dir("d:\essai.txt", system)
Edit :
et
n'est pas du tout un chemin complet
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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."images\" & nom
dans ton cas, il n'y a aucun renseignement sur le lecteur employé, etc...
par ex
serait correct
Code : Sélectionner tout - Visualiser dans une fenêtre à part "c:\images" & nom
je sais, c'est pour ça que j'en remet une couche!Je me tue à le dire...![]()
![]()
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
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 : Sélectionner tout - Visualiser dans une fenêtre à part dossier = Application.path & "\toto"
Tu peux bien évidemment choisir un autre dossier (s'il est fixe et connu) que celui de ton application ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part chemin_complet_fichier = dossier & "\" & fichier
Sa ne marche pas quand je met le relatif
Pouvez vous m'aidez svp
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part 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
Partager