Verifier la présence d'un fichier en VBA
Fermé
Mistral_13200
Messages postés
634
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
21 mars 2024
-
3 déc. 2019 à 08:29
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 - 3 déc. 2019 à 15:59
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 - 3 déc. 2019 à 15:59
A voir également:
- Vba vérifier si un fichier existe
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Verifier un lien - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier host - Guide
3 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 778
3 déc. 2019 à 08:41
3 déc. 2019 à 08:41
Bonjour,
Explications ici (concaténation) : http://boisgontierjacques.free.fr/pages_site/chaines.htm
Explications ici (concaténation) : http://boisgontierjacques.free.fr/pages_site/chaines.htm
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
3 déc. 2019 à 10:48
3 déc. 2019 à 10:48
Bonjour,
il suffit de vérifier si le fichier existe comme ceci:
https://excel-malin.com/codes-sources-vba/vba-verifier-si-le-fichier-existe/
il suffit de vérifier si le fichier existe comme ceci:
https://excel-malin.com/codes-sources-vba/vba-verifier-si-le-fichier-existe/
Mistral_13200
Messages postés
634
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
21 mars 2024
4
3 déc. 2019 à 14:29
3 déc. 2019 à 14:29
Bonjour Pivert,
C'est toujours pour le même classeur que celui ou tu m'as déjà aidé.
Comme c'est un classeur qui sera à la disposition de plusieurs personnes avec des ordinateurs différents et pas forcément la même arborescence, je ne peux pas mettre le nom d'un chemin en dur dans la macro.
Grace à toi je sais récupérer le chemin d'une répertoire. Je sais aussi affecter un chemin à une variable.
L'idée c'est de vérifier la présence du fichier avec une variable pour le chemin et une autre pour le nom de fichier.
Le dernier code que j'ai mis précédemment fonctionne correctement mais il ne trouve pas le fichier et je ne sais pas pourquoi. Sans ça je ne peux pas continuer les autres macros.
Aurais-tu une idée?
Cordialement
Mistral
C'est toujours pour le même classeur que celui ou tu m'as déjà aidé.
Comme c'est un classeur qui sera à la disposition de plusieurs personnes avec des ordinateurs différents et pas forcément la même arborescence, je ne peux pas mettre le nom d'un chemin en dur dans la macro.
Grace à toi je sais récupérer le chemin d'une répertoire. Je sais aussi affecter un chemin à une variable.
L'idée c'est de vérifier la présence du fichier avec une variable pour le chemin et une autre pour le nom de fichier.
Le dernier code que j'ai mis précédemment fonctionne correctement mais il ne trouve pas le fichier et je ne sais pas pourquoi. Sans ça je ne peux pas continuer les autres macros.
Aurais-tu une idée?
Cordialement
Mistral
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
3 déc. 2019 à 14:54
3 déc. 2019 à 14:54
Ta méthode de mettre un chemin en variable n'est pas bonne!
Il faut utiliser ce qu'Excel met à ta disposition pour avoir toujours le même chemin dans n'importe quelle configuration:
ThisWorkbook.Path
Il suffit à l'utilisateur de mettre son classeur dans le dossier dans lequel se trouve ses données.
voir ceci:
https://excel.developpez.com/faq/?page=FichiersDir#VerifExistenceFichier
Sinon il y a la méthode de recherche de fichier
Je ne comprends pas ta démarche!
Il faut utiliser ce qu'Excel met à ta disposition pour avoir toujours le même chemin dans n'importe quelle configuration:
ThisWorkbook.Path
Il suffit à l'utilisateur de mettre son classeur dans le dossier dans lequel se trouve ses données.
ThisWorkbook.Path & "\"lui donnera le chemin du dossier
voir ceci:
https://excel.developpez.com/faq/?page=FichiersDir#VerifExistenceFichier
Sinon il y a la méthode de recherche de fichier
Je ne comprends pas ta démarche!
Mistral_13200
Messages postés
634
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
21 mars 2024
4
3 déc. 2019 à 15:22
3 déc. 2019 à 15:22
Je vais regarder …
Le classeur final sera utilisé par 6 personnes différentes. Chacune d’elles aura son propre ordinateur donc 6 architectures et configurations différentes. D’autre part, elles auront déjà reçu toutes les photos qu’elles auront installées, je ne sais ou sur leur machine.
À chacune d’elles je vais fournir un fichier Zip, avec un répertoire (nommé diaporama) et 3 sous-répertoires, qu’elles installeront là où elle le souhaite. Le fichier Xlsx, en question sera issu d’une base de données Access et sera obligatoirement dans le répertoire Diaporama fourni. Le nom du fichier sera différent pour les 6 personnes : de fichier S1 à Fichiers S6 .xlsx.
Pour que mon classeur fonctionne, j’ai besoin de connaitre les emplacements d’un certain nombre de choses :
- Les emplacements de fichiers sources et destinations (réglé la semaine dernière).
- L’emplacement du répertoire Diaporama qui me donnera accès au fichier.Xlsx et aux sous-répertoires de travail.
Voilà tu sais tout et j’espère avoir été clair.
Cordialement.
Mistral
Le classeur final sera utilisé par 6 personnes différentes. Chacune d’elles aura son propre ordinateur donc 6 architectures et configurations différentes. D’autre part, elles auront déjà reçu toutes les photos qu’elles auront installées, je ne sais ou sur leur machine.
À chacune d’elles je vais fournir un fichier Zip, avec un répertoire (nommé diaporama) et 3 sous-répertoires, qu’elles installeront là où elle le souhaite. Le fichier Xlsx, en question sera issu d’une base de données Access et sera obligatoirement dans le répertoire Diaporama fourni. Le nom du fichier sera différent pour les 6 personnes : de fichier S1 à Fichiers S6 .xlsx.
Pour que mon classeur fonctionne, j’ai besoin de connaitre les emplacements d’un certain nombre de choses :
- Les emplacements de fichiers sources et destinations (réglé la semaine dernière).
- L’emplacement du répertoire Diaporama qui me donnera accès au fichier.Xlsx et aux sous-répertoires de travail.
Voilà tu sais tout et j’espère avoir été clair.
Cordialement.
Mistral
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
3 déc. 2019 à 15:41
3 déc. 2019 à 15:41
C'est donc ThisWorkbook.Path qu'il te faut utiliser!
Pour ce qui est ton fichier que tu ne trouves pas. As-tu mis un antislash après ta variable chemin comme ceci:
@+
Pour ce qui est ton fichier que tu ne trouves pas. As-tu mis un antislash après ta variable chemin comme ceci:
Diaporama & "\"
@+
Mistral_13200
Messages postés
634
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
21 mars 2024
4
3 déc. 2019 à 15:49
3 déc. 2019 à 15:49
Je viens de regarder ThisWorkbook.Path mais ça ne marche pas.
1) Cela donne l chemin du fichier ou se trouve la macro
2) Le chemin du répertoire et du fichier ne peut pas être en dur dans la macro.
Dernière précision, chaque utilisateur s'identifiera ce qui me permettra de connaitre le nom du fichier
Utilisateur A aura le Fichier _S1.xlsx … l'utilisateur F aura le fichier _S6 ce nom de fichier sera mis dans une variable
1) Cela donne l chemin du fichier ou se trouve la macro
2) Le chemin du répertoire et du fichier ne peut pas être en dur dans la macro.
Dernière précision, chaque utilisateur s'identifiera ce qui me permettra de connaitre le nom du fichier
Utilisateur A aura le Fichier _S1.xlsx … l'utilisateur F aura le fichier _S6 ce nom de fichier sera mis dans une variable
Mistral_13200
Messages postés
634
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
21 mars 2024
4
3 déc. 2019 à 10:51
3 déc. 2019 à 10:51
Bonjour Patrice et merci pour ta réponse,
J'ai suivi le lien que tu m'as indiqué. Il est super intéressant et je ne le connaissais pas.
Grace à ça j'ai une ligne de code qui fonctionne (qui s'exécute sans erreur):
If Not exist(Diaporama & "F_Palmares_S3.xlsx") Then MsgBox "Le fichier Palmarès est introuvable.": Exit Sub
"Diaporama" est le chemin exact du répertoire.
"F_Palmares_S3.Xlsx" c'est le fichier qui est bien présent dans le répertoire.
Et pourtant j'ai MsgBox qui m'indique que le fichier n'y est pas.
Une idée, je sèche?
Cordialement.
Albert
J'ai suivi le lien que tu m'as indiqué. Il est super intéressant et je ne le connaissais pas.
Grace à ça j'ai une ligne de code qui fonctionne (qui s'exécute sans erreur):
If Not exist(Diaporama & "F_Palmares_S3.xlsx") Then MsgBox "Le fichier Palmarès est introuvable.": Exit Sub
"Diaporama" est le chemin exact du répertoire.
"F_Palmares_S3.Xlsx" c'est le fichier qui est bien présent dans le répertoire.
Et pourtant j'ai MsgBox qui m'indique que le fichier n'y est pas.
Une idée, je sèche?
Cordialement.
Albert
Mistral_13200
Messages postés
634
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
21 mars 2024
4
3 déc. 2019 à 11:16
3 déc. 2019 à 11:16
J'ai essaye une autre solution mais toujours non exploitable.
Pour plus de précision je vous mets le code complet de ma macro :
Public Function exist(chemin, Optional typ = 0) As Boolean
exist = IIf(Dir(chemin, IIf(typ = 0, 0, vbDirectory)) = "", False, True)
End Function
Sub Verfication()
'
' V?rification v?rifie la conformit? et la pr?sence des repertoires et fichiers au bon endroit
' et la syntaxe des noms.
'
Dim Couleur As String
Dim Nature As String
Dim Monochrome As String
Dim Theme As String
Dim Palamares As String
Dim Diaporama As String
Dim Fichier As String
Fichier = "F_Palmares_S3.xlsx"
Couleur = Sheets("Données").Range("C3").Value
Nature = Sheets("Données").Range("C4").Value
Monochrome = Sheets("Données").Range("C5").Value
Theme = Sheets("Données").Range("C6").Value
Diaporama = Sheets("Données").Range("C7").Value
Destination = Sheets("Données").Range("E3").Value
'If Not exist("C:\__Jugement_FDT\1_Couleur", 1) Then MsgBox "Le r?pertoire 1_Couleur est introuvable.": Exit Sub
If Not exist(Couleur, 1) Then MsgBox "Le r?pertoire 1_Couleur est introuvable.": Exit Sub
If Not exist(Nature, 1) Then MsgBox "Le r?pertoire 2_Nature est introuvable.": Exit Sub
If Not exist(Monochrome, 1) Then MsgBox "Le r?pertoire 3_Monochrome est introuvable.": Exit Sub
If Not exist(Theme, 1) Then MsgBox "Le r?pertoire 4_Th?me est introuvable.": Exit Sub
If Not exist(Destination, 1) Then MsgBox "Le r?pertoire 5_Destination est introuvable.": Exit Sub
' If Not exist("C:\__Jugement_FDT\Diaporama\Palmares.xlsx ") Then MsgBox "Le fichier Palmares est introuvable.": Exit Sub
If Not exist(Diaporama & Fichier) Then MsgBox "Le fichier Palmares est introuvable.": Exit Sub
Range("A1").Select_
MsgBox "Vérification termin?ée vous pouvez commencer ? créer votre diaporama."
End Sub
Mo, problème est toujours le même je ne retrouve pas le fichier "Palmares.Xlsx".
Merci d'avance pour votre aide.
Cordialement.
Mistral
Pour plus de précision je vous mets le code complet de ma macro :
Public Function exist(chemin, Optional typ = 0) As Boolean
exist = IIf(Dir(chemin, IIf(typ = 0, 0, vbDirectory)) = "", False, True)
End Function
Sub Verfication()
'
' V?rification v?rifie la conformit? et la pr?sence des repertoires et fichiers au bon endroit
' et la syntaxe des noms.
'
Dim Couleur As String
Dim Nature As String
Dim Monochrome As String
Dim Theme As String
Dim Palamares As String
Dim Diaporama As String
Dim Fichier As String
Fichier = "F_Palmares_S3.xlsx"
Couleur = Sheets("Données").Range("C3").Value
Nature = Sheets("Données").Range("C4").Value
Monochrome = Sheets("Données").Range("C5").Value
Theme = Sheets("Données").Range("C6").Value
Diaporama = Sheets("Données").Range("C7").Value
Destination = Sheets("Données").Range("E3").Value
'If Not exist("C:\__Jugement_FDT\1_Couleur", 1) Then MsgBox "Le r?pertoire 1_Couleur est introuvable.": Exit Sub
If Not exist(Couleur, 1) Then MsgBox "Le r?pertoire 1_Couleur est introuvable.": Exit Sub
If Not exist(Nature, 1) Then MsgBox "Le r?pertoire 2_Nature est introuvable.": Exit Sub
If Not exist(Monochrome, 1) Then MsgBox "Le r?pertoire 3_Monochrome est introuvable.": Exit Sub
If Not exist(Theme, 1) Then MsgBox "Le r?pertoire 4_Th?me est introuvable.": Exit Sub
If Not exist(Destination, 1) Then MsgBox "Le r?pertoire 5_Destination est introuvable.": Exit Sub
' If Not exist("C:\__Jugement_FDT\Diaporama\Palmares.xlsx ") Then MsgBox "Le fichier Palmares est introuvable.": Exit Sub
If Not exist(Diaporama & Fichier) Then MsgBox "Le fichier Palmares est introuvable.": Exit Sub
Range("A1").Select_
MsgBox "Vérification termin?ée vous pouvez commencer ? créer votre diaporama."
End Sub
Mo, problème est toujours le même je ne retrouve pas le fichier "Palmares.Xlsx".
Merci d'avance pour votre aide.
Cordialement.
Mistral