Manquant : Microsoft Outlook 16.0 object library

Bonjour à tous,

J'ai un soucis concernant un fichier excel.

Lorsque j'essaye d'accéder à la macro, protégée par MDP, le fichier m'envoie un message d'erreur (dll manquant).

J'ai bien vérifié dans les références et effectivement il m'en manque une (voir image).

J'ai trouvé moultes explications sur le web, mais aucune ne me permet de résoudre mon problème.

J'ai actuellement la version office 2013 et il me manque la version 16?!?

J'ai essayé de décocher la 16 et d'activer la 15 dans les références, ca ne change rien, tjrs message d'erreur et lorsque je regarde de nouveau dans les références, le 16.0 est tjrs coché.

Dans l'onglet Macro Security, je ne parviens même pas à désactiver les macros. Tout est grisé.

Des idées?

1 2

Bonjour,

Cette boite de dialogue est peu pratique pour Cocher/Décocher

Il faut vraiment " viser " la boite à cocher pour activer ou désactiver la ligne : un simple clic ou double click sur la ligne ne suffit pas...

A+

Ca m'est arrivé sur l'un de mes projet récent. Le truc c'est que tu dois décocher la case, sortir de l'éditeur, enregistrer ton classeur,

fermer ton classeur, réouvrir ton classeur, revenir dans l'editeur, recocher la version 15 de ta DLL, resortir de l'éditeur, réenregistrer ton classeur.

Bonjour Pincho, bonjour le fil, bonjour le forum,

Lorsqu'une macro fait référence à une bibliothèque et que cette macro est distribuée, il arrive souvent ce genre de problème. Les gens ont des versions différentes d'Excel et ladite macro ne fonctionne plus si l'on a une version différente.

C'est à l'auteur de la macro qu'il revient de rendre cette macro "compatible" avec les différentes versions d'Excel.

Au lieu d'utiliser une bibliothèque, au début de la macro, il faut déclarer les objets. Ainsi, l'exécution du code devient transparente d'une version d'Excel à l'autre.

Joseph

Bonjour à tous,

astragor a écrit :

Ca m'est arrivé sur l'un de mes projet récent. Le truc c'est que tu dois décocher la case, sortir de l'éditeur, enregistrer ton classeur,

fermer ton classeur, réouvrir ton classeur, revenir dans l'editeur, recocher la version 15 de ta DLL, resortir de l'éditeur, réenregistrer ton classeur.

Ne fonctionne pas. Lorsque je décoche et que je fais OK, j'ai le message d'erreur DLL manquant.

Cela à comme impact que je ne sais même plus sauvegarder mon classeur car j'obtiens un message d'erreur.

Bonjour,

Cette boite de dialogue est peu pratique pour Cocher/Décocher

Il faut vraiment " viser " la boite à cocher pour activer ou désactiver la ligne : un simple clic ou double click sur la ligne ne suffit pas...

A+

Je n'ai pas compris la solution que vous préconisez. Qu'entendez vous par viser?

C'est à l'auteur de la macro qu'il revient de rendre cette macro "compatible" avec les différentes versions d'Excel.

Au lieu d'utiliser une bibliothèque, au début de la macro, il faut déclarer les objets. Ainsi, l'exécution du code devient transparente d'une version d'Excel à l'autre.

C'est effectivement la solution qui est suggérée sur bon nombre de forums. Je suis l'auteur de la macro.... ou pas vraiment puisqu'elle a été conçue avec l'aide des membres de ce forum. Néanmoins, je ne suis pas suffisamment calé pour pouvoir faire ce genre de développements en déclarant des objets. Je viens de demander à nos IT d'installer la version 2016 de Microsoft. Ca ne résout pas le problème à long terme mais c'est une solution le temps que j'apprenne à déclarer les objets

Je n'ai pas compris la solution que vous préconisez. Qu'entendez vous par viser?

Il faut vraiment cliquer "sur" la boite à cocher (et non sur la ligne) pour qu'elle se coche effectivement : Vous devez avoir visuellement l'assurance qu'elle est coché, si vous ne faites que sélectionner la ligne, elle ne se cochera pas.

A+

Bonjour Pincho, bonjour le fil, bonjour le forum,

... C'est effectivement la solution qui est suggérée sur bon nombre de forums. Je suis l'auteur de la macro.... ou pas vraiment puisqu'elle a été conçue avec l'aide des membres de ce forum. Néanmoins, je ne suis pas suffisamment calé pour pouvoir faire ce genre de développements en déclarant des objets. Je viens de demander à nos IT d'installer la version 2016 de Microsoft. Ca ne résout pas le problème à long terme mais c'est une solution le temps que j'apprenne à déclarer les objets

Fournis la partie du code qui fait référence à Microsoft Outlook (pas de mot de passe sur le code, bien sûr) dans un fichier et je vais voir à le faire fonctionner sans la bibliothèque.

A+

Joseph

A partir du moment ou tu as une erreur d'execution il faut arreter le code en allant sur le boton stop de l'éditeur visual basic avant d'entreprendre tout autre action.

Bonjour à tous,

Le problème a été résolu, l'IT a installé la version 2016.

Fournis la partie du code qui fait référence à Microsoft Outlook (pas de mot de passe sur le code, bien sûr) dans un fichier et je vais voir à le faire fonctionner sans la bibliothèque.

Joseph, le problème c'est que je ne parvenais même pas à avoir accès à ma macro. L'erreur DLL m'empêchant d'y rentrer.

Le problème ayant été résolu par l'installation de la version 2016, je peux y avoir accès. Voici la partie du code en question.

           Set Olapp = New Outlook.Application
            Set msg = Olapp.CreateItem(olMailItem)
            msg.To = Range("i2").Text
            msg.Subject = Range("C3").Value
            msg.HTMLBody = "<html><body><font color=""black""><font size=3><FONT FACE=""Georgia"">" & "Bonjour, " & _
            "<br /><br /><br />" & "blabla, etc" & _
            "<br /><br /><br />" & " </font></font></font></body></html>"
            msg.Display
            ActiveCell.Offset(1, 0).Select
            msg.Attachments.Add Chemin & A & ".xlsx"

Il s'agit d'une partie de la macro, celle contenant les références outlook (lien d'origine https://forum.excel-pratique.com/excel/creer-un-nouveau-fichier-excel-et-l-envoyer-par-outlook-t95966.html)

Je suis curieux de voir si la déclaration d'objet et beaucoup plus complexe qu'un code référencé. Ca aidera peut être aussi d'autres personnes dans le désespoir

Merci à tous pour l'aide en tout cas.

Bonjour,

dans ce cas de figure il faut déclarer l'objet en late binding (liaison tardive) pour ne pas être dépendant de la version installée.

eric.

eriiic,

Cela deviendrait alors ?

Dim Olapp, msg as object
set Olapp = CreateObject ("Outlook.Application")
Set msg = Olapp.CreateItem(olMailItem)
...

Je ne connais pas vba outlook.

Olapp As object, par contre je me demande si msg ne devrait pas être variant

Et tu ne peux plus utiliser les constantes de l'application comme olMailItem à moins de les avoir déclarées, Excel ne les connait pas. Les remplacer par leur valeur.

eric

Bonjour Pincho, bonjour le fil, bonjour le forum,

Voici un lien où Greg.leo à une solution (voir au bas du lien... ).

https://forum.excel-pratique.com/excel/envoyer-un-mail-avec-outlook-sans-object-library-t71481.html

Joseph

Bonjour à tous,

nouvelle sur le forum, je fais aussi mes premiers pas vba.

je rencontre le même problème. J'ai fait tout mon dév sur PC et pas de souci, mais il me le faut sur Mac (avec outlook uniquement / messagerie Mac non installée volontairement) et quand je cherche la référence il est indiqué : "Manquant : Microsoft Outlook 15,0 Object.Library"

si quelqu'un a une idée, je suis vraiment preneuse...

Mille mercis

Bonjour,

commence par décocher la manquante.

Et comme dit sur ce fil, il faut déclarer en late binding au lieu de early binding.

Une petite recherche te donnera toutes les explications.

eric

Rechercher des sujets similaires à "manquant microsoft outlook object library"