Joindre un fichier dans une feuille Excel

Ldr-33 Messages postés 9 Date d'inscription samedi 22 août 2015 Statut Membre Dernière intervention 19 octobre 2015 - Modifié par Ldr-33 le 19/10/2015 à 15:17
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 19 oct. 2015 à 21:28
Bonjour à tous,

Après plusieurs recherches, en vain, je ne parviens pas à créer ma macro.
Je dispose d'une feuille Excel sur laquelle mes collaborateurs saisissent des résultats à chaque fin de mois.
Ce même classeur est protégé afin que les utilisateurs ne puissent pas modifier le contenu.
Je souhaiterai qu'ils aient la possibilité de me joindre un fichier (Quel qu'il soit, photo, pdf, doc...), par l'intermédiaire de "Insertion\objet" via une macro.
Cela est-il possible? Je précise que je ne souhaite pas que la macro soit en liaison avec un envoi par mail, ce même classeur serait sauvegardé avec les pièces jointes.
Merci à vous de l'aide que vous pourrez m'apporter.

7 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
19 oct. 2015 à 17:25
Bonjour,
c'est évidemment possible (insertion ===>> objet comme tu le dis toi-même)
Et si tu veux le faire par code, il te suffit de lancer l'enregistreur de macro pour le voir, ce code à écrire ...
0
Ldr-33 Messages postés 9 Date d'inscription samedi 22 août 2015 Statut Membre Dernière intervention 19 octobre 2015
Modifié par Ldr-33 le 19/10/2015 à 17:49
Bonjour ucfoutu,

J'ai bien essayé de le faire par l'enregistreur,sans succès, le code obtenu me permet uniquement d'ouvrir le fichier que j'ai sélectionné, or j'aurai voulu choisir le fichier à insérer.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
19 oct. 2015 à 18:22
J'ai bien essayé de le faire par l'enregistreur,sans succès

Montre donc le code que tu as obtenu ...
0
Ldr-33 Messages postés 9 Date d'inscription samedi 22 août 2015 Statut Membre Dernière intervention 19 octobre 2015
19 oct. 2015 à 18:28
Voici ce que cela donne avec l'enregistreur, je suis obligé de finaliser par un choix de fichier.

Sub objects()
'
' objects Macro
'

'
ActiveSheet.Unprotect
ActiveSheet.OLEObjects.Add(Filename:= _
"C:\Users\Perso\Documents\Mes sources de données\Essai.mdb", Link:=False, _
DisplayAsIcon:=False).Select
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 19/10/2015 à 19:03
je suis obligé de finaliser par un choix de fichier.

Bien évidemment. Mais si tel est ton problème, ta question aurait alors dû être non pas ce qu'elle a été (création d'on objet par insertion objet), mais :
comment choisir un fichier (quelle que soit la finalité du choix... en vue de l'insertion d'un objet ou en vue de n'importe quoi d'autre).

Et la réponse la plus adéquate dépend alors de nombreux aspects, en passant par la localisation, sur le disque dur, du fichier à sélectionner.

Ouvre alors une autre discussion (avec toutes les précisions possibles) relative à la SEULE (et rien d'autre) sélection d'un fichier.
Je refuse personnellement de traiter plusieurs aspects distincts dans une même discussion. C'est d'ailleurs, je te le rappelle, l'une des règles de ce forum.

Il t'appartiendra bien évidemment ensuite d'assembler comme tu le souhaites les différents blocs d'instructions (celui de la sélection d'un fichier, d'une part, et celui de son insertion dans un objet, d'autre part).
Merci_ de t'y conformer.

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0
Ldr-33 Messages postés 9 Date d'inscription samedi 22 août 2015 Statut Membre Dernière intervention 19 octobre 2015
19 oct. 2015 à 18:46
Je vais de ce pas me conformer à tes recommandations, reformuler et reposter, tout en tenant compte de bien cibler mon problème.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 20/10/2015 à 10:56
Bon ...
Regarde et comprends ce que fais ceci (exemple) , au lieu de tenter de mélanger tes deux discussions :
sur un classeur nouveau :
Sub ajout_ole_toto()
Dim mon_fic As String
supprime_ole_toto
mon_fic = "C:\Documents and Settings\user\Mes documents\Classeur1.txt" '===>> mets ici un chemin à toi ...
With ActiveSheet.OLEObjects.Add(Filename:= _
mon_fic, Link:=False, _
DisplayAsIcon:=False)
.Name = "toto"
End With
End Sub
Sub supprime_ole_toto()
On Error Resume Next
ActiveSheet.OLEObjects("toto").Delete
On Error GoTo 0
End Sub

Il n'est pas difficile de comprendre que dans cet exemple, la chaîne de caractères mon_fic est fixe
Il n'est pas non plus difficile de comprendre que toi, tu la choisis comme montré dans ton autre discussion ...
Si tu ne t'en sortais pas en dépit de tout cela, je préfèrerais t'abandonner car cela voudrait dire que tu ne sais pas non plus assembler deux petits bouts de code et que tu attends simplement du tout cuit.

EDIT : ce passage de ta demande :
...joindre un fichier (Quel qu'il soit, photo, pdf, doc...),

appelle par ailleurs la remarque suivante :
un objet OLE ainsi inséré restera totalement inefficace si le logiciel d'exploitation de cet objet est absent de la machine du destinataire.
L'ajout d'un objet OLE n'étant bien évidemment pas celui du logiciel nécessaire à son exploitation.




________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0
Rejoignez-nous