Insertion d'une pièce jointe via une textbox
Bonjour,
J'ai fais différentes recherches sur les forums sans succès pour savoir si il est possible via mon userform d'insérer une pièce jointe dans mon tableau.
Je vous joins le tableau pour que ce soit plus claire.
Merci d'avance à ceux qui m'accorderont de leur temps.
Kahina.
Bonjour
Qu'entends-tu par "ajouter une pièce jointe" ?
Je pense que tu veux dire accéder à un fichier (.doc, . pdf, .txt etc.). Si c'est le cas c'est possible.
et1000lio a écrit :Bonjour
Qu'entends-tu par "ajouter une pièce jointe" ?
Je pense que tu veux dire accéder à un fichier (.doc, . pdf, .txt etc.). Si c'est le cas c'est possible.
Oui c'est bien ca je veux pouvoir ajouter le lien qui mène à un .doc .pdf etc..
Peux tu m'aider ?
S'il te plait.
Merci.
Kahina
Bonjour Kahina,
Rien de plus facile
1) Il faut des liens hypertexte en colonne H, dans les onglets "Arrivées" et "Départ".
Important => Mettre tous les fichiers dans le même dossier (Dans mon exemple "DOSSIER COURRIER")
a) Mettre cette fonction personnalisée dans un module de ton projet VBA
Cette fonction permet de définir le chemin du profil utilisateur de l'ordinateur.
Option Explicit
'Fonction personnalisée USERPROFILE
Public Function CheminProfilUtilisateur()
CheminProfilUtilisateur = Environ("userprofile")
Application.Volatile
End FunctionEnsuite en cellule A1 de l'onglet ACCEUIL mettre cette fonction personnalisée en fonction.
Donner un nom à cette cellule (ex. CPU)
b) Ensuite, mentionne ton lien hypertexte en colonne H faisant référence au nom du document mentionné en colonne i.
=> de manière manuscrite =SI(I3="";"";LIEN_HYPERTEXTE(CPU&"\DOSSIER COURRIER\"&I3&".pdf"))
Soit Si i3 est vide égale rien sinon lien hypertexte.
Si tu souhaites passer par l'userforme voici le code
.FormulaR1C1 = _
"=IF(RC[1]="""","""",HYPERLINK(CPU&""\DOSSIER COURRIER\""&RC[1]&"".pdf""))"J'ai intégré ce code dans le formulaire dans le cadre de l'insertion d'une nouvelle ligne
A ce stade ton lien hypertexte fonctionne.
Maintenant pour le faire fonctionner dans ton formulaire
a) ajoute un bouton (ex CommandButton6)
b) Colles-y le code suivant
Private Sub CommandButton6_Click()
If TextBox7 <> "" Then ActiveWorkbook.FollowHyperlink TextBox7.Value, , True
End SubDès lors que tu cliqueras sur ce bouton la programmation lancera le lien hypertexte de la Textbox7 et ouvrira le fichier en question
Je t'ai modifié ton fichier dans ce sens pour la page arrivée mais ne connaissant pas le chemin pour accéder au courrier je te laisse le soin de le modifier. Prodéder de la même manière pour l'onglet Départs
Je te laisse aussi le soin de programmer USF pour l'intégration de la référence du courrier en colonne i
A te relire
et1000lio a écrit :Bonjour Kahina,
Rien de plus facile
1) Il faut des liens hypertexte en colonne H, dans les onglets "Arrivées" et "Départ".
Important => Mettre tous les fichiers dans le même dossier (Dans mon exemple "DOSSIER COURRIER")
a) Mettre cette fonction personnalisée dans un module de ton projet VBA
Cette fonction permet de définir le chemin du profil utilisateur de l'ordinateur.
Option Explicit 'Fonction personnalisée USERPROFILE Public Function CheminProfilUtilisateur() CheminProfilUtilisateur = Environ("userprofile") Application.Volatile End FunctionEnsuite en cellule A1 de l'onglet ACCEUIL mettre cette fonction personnalisée en fonction.
Donner un nom à cette cellule (ex. CPU)
b) Ensuite, mentionne ton lien hypertexte en colonne H faisant référence au nom du document mentionné en colonne i.
=> de manière manuscrite =SI(I3="";"";LIEN_HYPERTEXTE(CPU&"\DOSSIER COURRIER\"&I3&".pdf"))
Soit Si i3 est vide égale rien sinon lien hypertexte.
Si tu souhaites passer par l'userforme voici le code
.FormulaR1C1 = _ "=IF(RC[1]="""","""",HYPERLINK(CPU&""\DOSSIER COURRIER\""&RC[1]&"".pdf""))"J'ai intégré ce code dans le formulaire dans le cadre de l'insertion d'une nouvelle ligne
A ce stade ton lien hypertexte fonctionne.
Maintenant pour le faire fonctionner dans ton formulaire
a) ajoute un bouton (ex CommandButton6)
b) Colles-y le code suivant
Private Sub CommandButton6_Click() If TextBox7 <> "" Then ActiveWorkbook.FollowHyperlink TextBox7.Value, , True End SubDès lors que tu cliqueras sur ce bouton la programmation lancera le lien hypertexte de la Textbox7 et ouvrira le fichier en question
Je t'ai modifié ton fichier dans ce sens pour la page arrivée mais ne connaissant pas le chemin pour accéder au courrier je te laisse le soin de le modifier. Prodéder de la même manière pour l'onglet Départs
Je te laisse aussi le soin de programmer USF pour l'intégration de la référence du courrier en colonne i
A te relire
Bonjourrr,
Merci j'ai essayé de suivre pas à pas tes instructions mais je n'ai pas tout compris voici mes questions :
1) Je n'ai pas compris comment mettre en fonction la fonction personnalisée en cellule A1 ?
2) Je ne comprends pas l'information que je dois mettre en cellule I ?
3) le bouton commandbutton 6 sert à ouvrir le lien hypertexte de la colonne H quand celle-ci est renseignée c'est ca ?
4) si oui donc que dois je faire pour que quand je clic sur la textbox 7 elle m'ouvre directement le dossier courrier pour pouvoir ajouter les liens des documents ?
Désolée je suis novice j'apprends avec des tutos et sur le tas.
Merci encore.
Kahina
1) Je n'ai pas compris comment mettre en fonction la fonction personnalisée en cellule A1 ?
Procèdes suivant l'image jointe => Sélectionnes A1 puis Fonction puis Personnalisées puis OK
2) Je ne comprends pas l'information que je dois mettre en cellule I ?C'est le nom de ton fichier courrier à ouvrir (Ex. Impôts 2017)
Pour Information tu n'est pas obligé de mettre l'extension dans le lien Hypertexte en colonne H, tu peux la mettre en en colonne i si les extentions de tes fichiers courriers sont différentes (Ex. impôts 2017.doc)
3) le bouton commandbutton 6 sert à ouvrir le lien hypertexte de la colonne H quand celle-ci est renseignée c'est ca ?
OUI c'est bien cela
4) si oui donc que dois je faire pour que quand je clic sur la textbox 7 elle m'ouvre directement le dossier courrier pour pouvoir ajouter les liens des documents ?
Il ne peut y avoir qu'un lien dans TextBox7. Cette programmation ne peut que lancer l'ouverture d'un seul lien.
Si tu souhaites plusieurs liens dans TextBox cela dépasse mes compétences mais je doute fort que ce soit possible. Mais sait-on jamais il y a sur ce forum des As du VBA
Par contre si tu ne souhaites pas de bouton supplémentaire dans ton USF tu peux toujours programmer l'ouverture du lien via la TextBox7 en lui programmant le code suivant :
Private Sub TextBox7_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
ActiveWorkbook.FollowHyperlink TextBox7.Value, , True
End SubDésolée je suis novice j'apprends avec des tutos et sur le tas.
Tu n'as pas à être désolé, la plupart des personnes qui font vivre se forum sont passés par là, moi le premier et je suis loin d'être au top et j'en apprend encore tous les jours.
Bonjour,
Désolée de revenir vers toi que maintenant je fais ca entre deux tâches donc je ne réussi pas toujours à me libérer du temps pour avancer. Déjà merci pour tes explications ensuite j'ai d'autres questions s'il te plait je veux être sûre de bien comprendre :
1) La fonction personnalisée de la cellule A1 sert aux onglets arrivée et départ ?
2) Idem la fonction personnalisée à mettre dans un module VBA que tu as mise pour l'onglet arrivée est active pour l'onglet départ ? ou faut il l'ajouter dans l'USF de mon onglet départ ?
3) (Si oui aux deux précédentes question) cela voudrait dire que je n'ai plus qu'a ajouter la formule "=SI" dans la colonne H de mon onglet départ ? et créer le bouton sur le formulaire départ ?
4) La programmation pour l'intégration de la référence en colonne I c'est fait sur l'onglet arrivée ? ou je dois le faire sur les deux ? si oui comment ?
5) Je demande ca parce que ca ne fonctionne pas sur l'onglet arrivée alors que j'ai bien changé le nom du chemin dans la formule de la colonne I.
Merci pour tout.
Kahina.
Voici un imprime écran du message lorsque j'essaie d'ouvrir un lien.