XL 2016 VBA : possible d'installer une ancienne bibliothèque

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

xtor

XLDnaute Nouveau
Bonjour à tous,

J'utilise EXCEL 2016, mais tous mes collègues n'ont pas encore cette version.
Lorsqu'ils utilisent ma macro, il y a un problème de bibliothèque manquante car j'ai coché dans mes références :
MICROSOFT OUTLOOK 16.0 Object Library alors que mes collègues ont une version 15.0 au plus.

Je suis bien parvenu en ouvrant sur chaque poste à adapter, mais les macros sont verrouillées pour les utilisateurs donc je dois intervenir personnellement.
Etant donné que mon fichier est utilisé par plusieurs dizaines de personnes et au niveau européen, existe-t-il un moyen de rajouter dans mon excel 2016 cette ancienne bibliothèque.

D'avance merci pour votre retour
Xtor
 
Salut, décocher la référence, dans un environnement hétérogène on développe en Early Binding puis on déploie en Late Binding, cela devrait éviter les conflits de versions de bibliothèques.

 

Pièces jointes

Dernière édition:
Bonjour.
Là, évidemment, il va falloir se résoudre à passer en liaisons tardives.
Ça implique d'utiliser l'objet à travers une variable déclarée As Object et de l'initialiser par un Set à ce que renverra un appel à la fonction CreateObject. Je ne puis vous en donner le modèle garanti fonctionnel, n'étant pas équipé d'Outlook de toute façon.
Mais quand vous aurez réussi, gardez vous bien d'en déduire que c'est mieux de faire comme ça pour n'importe quel type d'objet. La Scrrun.dll, notamment, est très stable sur tous les systèmes depuis des dizaines d'années et il vaut mieux cocher la référence Microsoft Scripting Runtime, tant pour l'utilisation de Dictionary (optimisation performance) que du FileSystemObject (assistance lors de la programmation).
 
J'ai déjà modifié les déclarations de variable, mais cela ne fonctionne toujours pas.
Voici la procédure d'envoi de mail (les autres variables étant déclarées et définies dans la macro principale.

Sub ENVOIMAIL()

Dim outlookDossier As Object 'avant As Outlook.MAPIFolder
Dim outlookMessage As Object 'avant As Outlook.MailItem


If vPays = "6460" Then

Set outlookDossier = GetObject("", "Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
Set outlookMessage = outlookDossier.Items.Add

With outlookMessage
.Display
.Subject = "PP " & vClient
.Recipients.Add vBoss
.Body = "PP voor akkoord "
.Attachments.Add vChemin + "\" + vClient + " PP " + vDatelim + ".pdf"
.Attachments.Add vChemin + "\" + vClient + " PH2-4 920 " + vDatelim & ".txt"
If vPH5 <> "non" Then
.Attachments.Add vChemin + "\" + vClient + " PH2-4-5 919 " + vDatelim & ".txt"
End If
If vArt <> "non" Then
.Attachments.Add vChemin + "\" + vClient + " ART-917 " + vDatelim & ".txt"
End If
.OriginatorDeliveryReportRequested = False
.ReadReceiptRequested = False
.Send
End With

Set outlookMessage = Nothing
Set outlookDossier = Nothing

End If

End Sub
 
Re, désolé mais n'ayant plus depuis des années Outlook mais Thunderbird .....

D'autre part pour ton code :

STP Insertion Code.png
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour