cs_thierry97100
Messages postés10Date d'inscriptionlundi 17 novembre 2008StatutMembreDernière intervention12 décembre 2020
-
15 mai 2013 à 05:10
cs_thierry97100
Messages postés10Date d'inscriptionlundi 17 novembre 2008StatutMembreDernière intervention12 décembre 2020
-
15 mai 2013 à 23:00
Bonjour
Mes utilisateurs doivent pouvoir, sous Excel, en cliquant sur un bouton, affecté à une macro, envoyer un mail.
Le mail se crée automatiquement sous Outlook si on enregistre le fichier avec Excel 2003 après avoir activé « Microsoft Outlook 11.0 Object Library » ça marche avec les deux versions d'Excel.
Excel 2010 active automatiquement « Microsoft Outlook 14.0 Object Library ».
Le problème c'est l'inverse si je fais la même opération en partant d'Excel 2010, Excel 2003 ne trouve pas « Microsoft Outlook 14.0 Object Library », le marque "MANQUANT" et rien ne fonctionne.
Avez-vous un code VBA qui me permettrait d'activer ou de désactiver à volonté "Microsoft Outlook Object Library" version 11.0 et 14.0 avec les 2 programmes ?
Merci d'avance
Thierry97100
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 15 mai 2013 à 06:59
Oups ! J'ai "donné" sans le vouloir dans le porno !
Corriger ===>> Late Bonding ===>> Late Binding
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 15 mai 2013 à 17:28
... suite
Par contre, pour fins de test, c'est bien de créer une référence.
Par la suite, quand tu as bien tout testé et que tout fonctionne bien, tu enlèves les références et utilises CreateObject
Le fait d'avoir des références te permet de voir les différentes méthodes, propriétés,... ce que tu ne peux pas en mode CreateObject
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 15 mai 2013 à 06:35
Bonjour,
Supprime ces références à Outlook et utilise la liaison tardive (Late Bonding), en créant un objet Outlook à l'aide de CreateObject, genre
dim toto as object
set toto = CreateObject("Outlook.Application")
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_thierry97100
Messages postés10Date d'inscriptionlundi 17 novembre 2008StatutMembreDernière intervention12 décembre 2020 15 mai 2013 à 07:57
Merci pour ta réponse.
je joins ma macro pour plus de compréhension.
**************************
Private Sub CommandButton1_Click()
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String
Dim Fichier As String
Dim Sourcewb As Workbook
Dim Destwb As Workbook
Dim Temp As String
Dim Vers As Long
Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olmailItem)
Vers = Val(Application.Version)
Set Sourcewb = ActiveWorkbook
ActiveSheet.Copy
Set Destwb = ActiveWorkbook
If Vers = 14 Then
Temp = Environ("TEMP") & "\Demande_assistance_" & Timer & ".xlsm"
Destwb.SaveAs Temp, FileFormat:=52
GoTo Enregistrement
ElseIf Vers = 12 Then
Temp = Environ("TEMP") & "\Demande_assistance_" & Timer & ".xlsx"
ElseIf Vers = 11 Then
Temp = Environ("TEMP") & "\Demande_assistance_" & Timer & ".xls"
End If
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 15 mai 2013 à 08:16
J'ai répondu, me semble-t-il, à la seule question que posait la discussion ouverte. Elle était relative à un seul aspect : celui de références à cocher entre une version et l'autre.
Je t'ai dit comment ne pas utiliser du tout ces références et les remplacer par du "Late Binding". Je ne comprends donc même pas pourquoi tu nous montres le reste de ta macro.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.