VBA faisant appel à autres fichiers
CamilleDR
Messages postés
29
Date d'inscription
Statut
Membre
Dernière intervention
-
CamilleDR Messages postés 29 Date d'inscription Statut Membre Dernière intervention -
CamilleDR Messages postés 29 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un fichier dans lequel je rentre des données via un formulaire VBA (nom de l'ingrédient et quantité utilisée).
Grâce au nom de l'ingrédient, le formulaire va chercher des données complémentaires dans une base de données située sur un autre fichier excel.
La validation du formulaire va aussi chercher 2 images qui s'insèrent dans la mise en page du fichier.
Sur mon ordinateur, tout fonctionne.
Comment faire pour que cela fonctionne de la même manière lorsque je transfère l'ensemble des fichiers liés sur un autre ordinateur, ou dans un autre dossier de mon ordinateur ?
Je suppose qu'il faudrait dimensionner les fichiers liés dans VBA, afin de n'avoir à changer le lien qu'à un endroit, mais je ne sais pas comment faire...
Je peux envoyer les fichiers concernés en MP si quelqu'un peut me dépanner.
Merci d'avance,
Camille
J'ai un fichier dans lequel je rentre des données via un formulaire VBA (nom de l'ingrédient et quantité utilisée).
Grâce au nom de l'ingrédient, le formulaire va chercher des données complémentaires dans une base de données située sur un autre fichier excel.
La validation du formulaire va aussi chercher 2 images qui s'insèrent dans la mise en page du fichier.
Sur mon ordinateur, tout fonctionne.
Comment faire pour que cela fonctionne de la même manière lorsque je transfère l'ensemble des fichiers liés sur un autre ordinateur, ou dans un autre dossier de mon ordinateur ?
Je suppose qu'il faudrait dimensionner les fichiers liés dans VBA, afin de n'avoir à changer le lien qu'à un endroit, mais je ne sais pas comment faire...
Je peux envoyer les fichiers concernés en MP si quelqu'un peut me dépanner.
Merci d'avance,
Camille
A voir également:
- VBA faisant appel à autres fichiers
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Appel privé - Guide
- Renommer des fichiers en masse - Guide
- Fichiers epub - Guide
- Fichier impossible à supprimer - Guide
4 réponses
Bonjour,
Le plus simple est de placer les fichiers dans un sous-répertoire de celui qui contient la macro.
Avec Thisworkbook.Path tu obtiens le répertoire du fichier macro et donc l'emplacement relatif du sous-répertoire.
Le plus simple est de placer les fichiers dans un sous-répertoire de celui qui contient la macro.
Avec Thisworkbook.Path tu obtiens le répertoire du fichier macro et donc l'emplacement relatif du sous-répertoire.
Bonjour,
Exemple :
Dans un module :
Dans le code du formulaire :
soit un répertoire :
C:\Document\Projet
créer 2 sous répertoires
C:\Document\Projet\Fichiers
C:\Document\Projet\Images
dans tout le code peu importe ou tu seras :
Chemin1 = XContexte.RepFichiers & "MonFichierIngrédiant.xls"
Chemin2 = XContexte.RepImages & "MonImage.jpg"
K
Exemple :
Dans un module :
Public Type Contexte
RepImages As String
RepFichiers As String
End Type
Global XContexte As Contexte
Dans le code du formulaire :
Private Sub UserForm_Initialize()
Dim CheminClasseur As String ' Chemin du classeur ayant le VBA
Dim CheminFichiers As String ' Chemin du fichier ayant les ingrédiants
Dim CheminImages As String ' Chemin des images
CheminClasseur = ThisWorkbook.Path
CheminFichier = CheminClasseur & "\Fichiers\"
CheminImages = CheminClasseur & "\Images\"
XContexte.RepFichiers = CheminFichiers
XContexte.RepImages = CheminImages
End Sub
soit un répertoire :
C:\Document\Projet
créer 2 sous répertoires
C:\Document\Projet\Fichiers
C:\Document\Projet\Images
dans tout le code peu importe ou tu seras :
Chemin1 = XContexte.RepFichiers & "MonFichierIngrédiant.xls"
Chemin2 = XContexte.RepImages & "MonImage.jpg"
K
Bonjour,
Je ne vois pas l'intérêt de la variable publique personnalisée Contexte, sinon de compliquer les choses pour les débutants en VBA : dans toutes les procédures du projet on peut trouver l'emplacement du classeur puis définir comme tu l'a fait les sous-répertoires simplement avec :
Je ne vois pas l'intérêt de la variable publique personnalisée Contexte, sinon de compliquer les choses pour les débutants en VBA : dans toutes les procédures du projet on peut trouver l'emplacement du classeur puis définir comme tu l'a fait les sous-répertoires simplement avec :
CheminClasseur = ThisWorkbook.Path CheminFichier = CheminClasseur & "\Fichiers\" CheminImages = CheminClasseur & "\Images\"
Apprendre n'a jamais fait de tort à personne.
Je n'ai que proposé une suggestion. Pour toi, il n'y a pas d'intérêt, je peux comprendre.
Ça ne veut pas dire qu'il n'y en en pas pour les autres...
La perception de chacun est différente, ce qui est bon pour toi ne l'est pas forcément pour un autre et vice-versa. Chacun est en droit de choisir sa vision.
K
Je n'ai que proposé une suggestion. Pour toi, il n'y a pas d'intérêt, je peux comprendre.
Ça ne veut pas dire qu'il n'y en en pas pour les autres...
La perception de chacun est différente, ce qui est bon pour toi ne l'est pas forcément pour un autre et vice-versa. Chacun est en droit de choisir sa vision.
K
Je n'ai pas réussi à inclure les codes que vous proposez... Ca dépasse mon niveau de compréhension !
Si j'envoie le fichier quelqu'un pourrait m'aider ?
Camille
Si j'envoie le fichier quelqu'un pourrait m'aider ?
Camille
Bonjour,
Déposes ton fichier (sans infos confidentielles) sur https://www.cjoint.com/ puis mets le lien obtenu dans ton prochain post.
Tutoriel Cjoint :https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers#q=cjoint&cur=2&url=%2F
Déposes ton fichier (sans infos confidentielles) sur https://www.cjoint.com/ puis mets le lien obtenu dans ton prochain post.
Tutoriel Cjoint :https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers#q=cjoint&cur=2&url=%2F
Lien vers le fichier de calcul des valeurs nutritionnelles :
http://www.cjoint.com/c/FKhjbAmB8K1
Lien vers la base de données :
http://www.cjoint.com/c/FKhjdRUIPA1
Liens vers les 2 photos utilisées, une en entête et une en bouton "menu" :
http://www.cjoint.com/c/FKhjqxkdIZ1
http://www.cjoint.com/c/FKhjpFdKvf1
En bidouillant j'ai réussi à faire en sorte que les liens vers la base de données fonctionnent sur un autre PC, le bouton "menu" aussi, mais celui vers le bandeau qui me sert d'entête ne fonctionne pas...
Merci pour votre aide !
Camille
http://www.cjoint.com/c/FKhjbAmB8K1
Lien vers la base de données :
http://www.cjoint.com/c/FKhjdRUIPA1
Liens vers les 2 photos utilisées, une en entête et une en bouton "menu" :
http://www.cjoint.com/c/FKhjqxkdIZ1
http://www.cjoint.com/c/FKhjpFdKvf1
En bidouillant j'ai réussi à faire en sorte que les liens vers la base de données fonctionnent sur un autre PC, le bouton "menu" aussi, mais celui vers le bandeau qui me sert d'entête ne fonctionne pas...
Merci pour votre aide !
Camille
Niveau code ça donne quoi ?
Je place ça ou ?
Camille