MANQUANT : Micosoft Outlook 15.0 object library

JPrev

XLDnaute Junior
Bonjour à tous,

Tout d'abord je suis débutant en VBA donc je vais essayer d'expliquer au mieux :/.

Ayant créé une application sur Excel 2013 (Office15 donc), sensé dans une macro envoyer un mail à une liste de destinataires dès que la macro est exécutée (en fait c'est un formulaire qui remplit une base de données, dès qu'une information est rentrée par quelqu'un, tout le monde reçoit un mail).

Jusque là, j'ai testé avec 3 PC qui ont Office 2013, tout va bien. Or, j'ai testé avec 2 personnes ayant Office 2007 (et donc d'autres ont différentes versions...) et la macro ne marche pas. J'avais vu qu'il pouvait s'agir de "références manquantes" et dans les références de ces PC je trouve "MANQUANT : Microsoft Outlook 15.0 object Library" et ça bloque ma macro à l'étape de dimension :

Dim MonOutlook As New Outlook.Application

Je me retrouve plutôt bien bloqué :/, quelqu'un aurait une solution miracle à me donner?

Merci d'avance,

JPrev
 

camarchepas

XLDnaute Barbatruc
Re : MANQUANT : Micosoft Outlook 15.0 object library

Bonjour Pierrot , JPrev ,

Sinon sans activer la référence en faisant une déclaration tardive :

Dim Appli_Outlook As Object, Mail_Outlook As Object

Set Appli_Outlook = CreateObject("Outlook.Application")
Set Mail_Outlook = Appli_Outlook.CreateItem(0)
 

JPrev

XLDnaute Junior
Re : MANQUANT : Micosoft Outlook 15.0 object library

Bonjour,

Il y a des versions d'office 2007,2010 et 2013 ici, donc 2013 marche, le reste non. J'ai également essayé l'idée de cocher/décocher, enregistrer/fermer/rouvrir mais cela ne marche pas.

Autre surprise depuis ce matin, même sur 2013 la macro ne marche plus alors que le code n'a pas bougé. Y'a-t-il une raison particulière qui pourrait le justifier?

Cela me met "Erreur de compilation : Type défini par l'utilisateur non défini"...

Je vous place la partie de procédure qui doit envoyer un mail à toute une liste de contacts dans une colonne lorsque j'exécute la macro :

Dim MonOutlook As New Outlook.Application
Dim MyMail As MailItem
Set MyMail = MonOutlook.CreateItem(olMailItem)
Dim chaine As String

Sheets("Formulaire d'intégration").Select
ligne = 2
Do While Cells(ligne, 14).Value <> vbEmpty
adresse_mail = Cells(ligne, 14)
If Cells(ligne - 1, 14).Value <> adresse_mail Then
'création d'un nouveau mail car on est sur une nouvelle adresse mail
Set MyMail = MonOutlook.CreateItem(olMailItem)
MyMail.To = adresse_mail
MyMail.CC = adresse_mail 'ici on peut mettre les adresse en copie
MyMail.Subject = "Nouvelle information dans la base de données de Veille"
chaine = ""
End If
chaine = chaine & Cells(3, 15).Value & Chr(10) 'saut de ligne
chaine = chaine & Cells(4, 15).Value & Chr(10)
chaine = chaine & Cells(5, 15).Value & Chr(10)
chaine = chaine & Cells(6, 15).Value & Chr(10)
chaine = chaine & Cells(7, 15).Value & Chr(10)
chaine = chaine & Cells(8, 15).Value & Chr(10)
chaine = chaine & Cells(9, 15).Value & Chr(10)
chaine = chaine & Cells(10, 15).Value & Chr(10)
chaine = chaine & Cells(11, 15).Value & Chr(10)
If Cells(ligne + 1, 2).Value <> adresse_mail Then
'envoi du mail car à la ligne suivante nous avons un autre destinataire
MyMail.Body = chaine
MyMail.Send
End If
ligne = ligne + 1
Loop
Set MonOutlook = Nothing

Si quelqu'un a une solution, je peux également envoyer mon fichier par mail pour jeter un coup d'œil!

Merci d'avance messieurs dames,

JPrev
 

JPrev

XLDnaute Junior
Re : MANQUANT : Micosoft Outlook 15.0 object library

Re,

Correction pour la macro mail, elle fonctionne : C'est un enregistrement par un excel 2007 qui a décoché MA référence Microsoft Outlook 15.0 Object Library...

Par contre les 2 solutions concernant les différentes versions excel ne marchent pas.

Camarchepas, lorsque je met ta solution "Projet ou Bibliothèque introuvable", apparemment il ne reconnaît pas MailItem

Dim MyMail As MailItem

Tu as une autre solution?
 

camarchepas

XLDnaute Barbatruc
Re : MANQUANT : Micosoft Outlook 15.0 object library

Bonsoir ,

non c'est la même , toujours sans référencement, mais appliquée jusqu'au bout ....

J'ai repris et modifié ton code , sans pouvoir tester puisque pas de fichier et sous Xl 2010 uniquement :

Code:
Sub Envoi()

Dim Appli_Outlook As Object, Mail_Outlook As Object
Dim chaine As String, Adresse_mail As String
Dim Ligne As Long
'Initialise
 Set Appli_Outlook = CreateObject("Outlook.Application")
 Sheets("Formulaire d'intégration").Select
 Ligne = 2
 Do While Cells(Ligne, 14).Value <> vbEmpty
  Adresse_mail = Cells(Ligne, 14)
  If Cells(Ligne - 1, 14).Value <> Adresse_mail Then
   'création d'un nouveau mail car on est sur une nouvelle adresse mail
    Set Mail_Outlook = Appli_Outlook.CreateItem(0)
    Mail_Outlook.To = Adresse_mail
    Mail_Outlook.CC = Adresse_mail 'ici on peut mettre les adresse en copie
    Mail_Outlook.Subject = "Nouvelle information dans la base de données de Veille"
    chaine = ""
  End If
  chaine = chaine & Cells(3, 15).Value & vbLf 'saut de ligne
  chaine = chaine & Cells(4, 15).Value & vbLf
  chaine = chaine & Cells(5, 15).Value & vbLf
  chaine = chaine & Cells(6, 15).Value & vbLf
  chaine = chaine & Cells(7, 15).Value & vbLf
  chaine = chaine & Cells(8, 15).Value & vbLf
  chaine = chaine & Cells(9, 15).Value & vbLf
  chaine = chaine & Cells(10, 15).Value & vbLf
  chaine = chaine & Cells(11, 15).Value & vbLf
  If Cells(Ligne + 1, 2).Value <> Adresse_mail Then
   'envoi du mail car à la ligne suivante nous avons un autre destinataire
    Mail_Outlook.Body = chaine
    Mail_Outlook.Send
  End If
 Ligne = Ligne + 1
 Set Mail_Outlook = Nothing
Loop
Set Appli_Outlook = Nothing
End Sub
 

JPrev

XLDnaute Junior
Re : MANQUANT : Micosoft Outlook 15.0 object library

Salut camarchepas,

Merci pour la modification, ça marche parfaitement sans passer par la case références etc. qui bloquerait tout le monde ici.

Sinon, peut-être que tu pourras m'aider pour une autre chose :

Dans mon mail (la liste de chaînes pour le corps), j'aimerais intégrer un lien hypertexte qui ouvrirait un dossier (sur notre serveur commun) dans lequel mon fichier serait présent, mais lorsque j'intègre sur excel le lien, dans mon mail ça ne l'affiche pas en lien hypertexte (pas de possibilité de cliquer dessus).

Y'a-t-il une possibilité de faire ça?

Merci encore,
JPrev

P.S : A l'occasion, sans vouloir te bloquer trop de temps, pourras-tu m'expliquer rapidos ce qui n'allait pas dans ma macro? C'est pour voir où j'ai merdé
 

camarchepas

XLDnaute Barbatruc
Re : MANQUANT : Micosoft Outlook 15.0 object library

Re ,

c'est sur la partie déclarative qu'il y à eu un blème :
Code:
Dim Appli_Outlook As Object, Mail_Outlook As Object
 Dim chaine As String, Adresse_mail As String
 Dim Ligne As Long
 'Initialise
 Set Appli_Outlook = CreateObject("Outlook.Application")
  Sheets("Formulaire d'intégration").Select
  Ligne = 2
  Do While Cells(Ligne, 14).Value <> vbEmpty
   Adresse_mail = Cells(Ligne, 14)
   If Cells(Ligne - 1, 14).Value <> Adresse_mail Then
    'création d'un nouveau mail car on est sur une nouvelle adresse mail
    Set Mail_Outlook = Appli_Outlook.CreateItem(0)

Pour le lien hypertexte comme ceci : a adapter avec le lien du serveur

Code:
      Mail_Outlook.Body = chaine & vblf & "Un forum Génial XLD " & _
            vbLf & "http://www.excel-downloads.com" & vbLf & vbLf & _
            "Cordialement" & vbLf & "mailto:emetteur@mail.fr"
 

JPrev

XLDnaute Junior
Re : MANQUANT : Micosoft Outlook 15.0 object library

Re,

Mon lien hypertexte n'est pas une adresse internet mais un dossier sur notre serveur interne (un disque présent sur tous les PC)

L'adresse que je veux ouvrir via le mail envoyé par la macro est :

N:\Commun IPRP\Documenthèque
 

Discussions similaires

Réponses
14
Affichages
668

Statistiques des forums

Discussions
312 299
Messages
2 086 989
Membres
103 420
dernier inscrit
abdel665