Références - VBA

Bonjour,

J'ai créé un code VBA pour mon service qui génère et envoie des mails. Pour cela, j'utilise les références Microsoft Outlook 14.0 ...

Cependant, certains utilisateurs disposent d'une version d'excel supérieure aux autres et, lorsqu'ils utilisent le fichier, les références Outlook changent automatiquement vers une référence plus récente 16.0 ce qui rend le fichier inutilisable pour les utilisateurs disposant d'un excel plus ancien...

Savez-vous comment "bloquer" cette référence à une version plus ancienne ou me donner une autre solution????

Merci à vous

Bonjour,

à tester,

Sub AddReferences_Outlook()
    AddRef ActiveWorkbook, "{00062FFF-0000-0000-C000-000000000046}", "Outlook"
End Sub

Sub AddRef(wbk As Workbook, sGuid As String, sRefName As String)
    Dim i As Integer
    On Error GoTo EH
    With wbk.VBProject.References
        For i = 1 To .Count
            If .Item(i).Name = sRefName Then
               Exit For
            End If
        Next i
        If i > .Count Then
           .AddFromGuid sGuid, 0, 0
        End If
    End With
EX: Exit Sub
EH: MsgBox "Error in 'AddRef'" & vbCrLf & vbCrLf & Err.Description
    Resume EX
    Resume ' debug code
End Sub

Bonjour à tous

ou bien déclare ton objet outlook en late binding au lieu de early binding.

Le lien se fera avec la la version de la bibliothèque présente.

Une petite recherche google te donnera des exemples.

eric

Bonjour,

Je teste cela cette aprèm.

Déjà un tout grand merci pour l'aide.

Thibaut

re,

est ce que le problème est résolu ?

Non pas encore... J'ai eu pas mal d'autres "priorités" la semaine passée... Je dois y regarder cette semaine.

je n'y arrive pas.... J'ai essayé d'adapter en fonction de ce que j'avais compris de vos remarques mais.... (je ne dois pas être assez calé)

Ci-dessous un extrait de mon code et en dessous un print screen qui montre que les références passent en Microsoft Outlook 16.0 ... dès qu'un utilisateur Windows 10 utilise le fichier. Du coup je dois pour l'instant retirer ces références et selectionner ....14.0 manuellement.

Pouvez-vous me dire ce que je dois changer ...

Public Sub Envoi_Email()

Dim WorksheetToSend As Worksheet, RangeToSend As Range, Destinataires As String, Destinataires2 As String

Dim WorksheetData As Worksheet, worksheetRecepient As Worksheet

Dim WorkbookToSend As Workbook, i As Integer, j As Integer

Dim Answer As VbMsgBoxResult, Answer1 As VbMsgBoxResult, Answer2, Answer4 As VbMsgBoxResult, Message As String, BodyMail As String, SubjectMail As String, Answer3 As VbMsgBoxResult

Dim appOutlook As Outlook.Application

Dim oMail As Outlook.MailItem

Dim MyRange As Range

Set appOutlook = CreateObject("outlook.application")

Set oMail = appOutlook.CreateItem(olMailItem)

capture reference

re,

Voici un autre exemple qui ne nécessite pas de cocher une référence

Merci à vous...

J'ai déclaré en late binding et ça fonctionne parfaitement. J'avais dû faire une erreur lors de mes premiers tests...

Encore merci

Rechercher des sujets similaires à "references vba"