Outils/Références cocher OutLook : Envoi par OutLook d'un onglet du classeur actif

famu

XLDnaute Occasionnel
Bonjour à tous,
J'utilise une macro de Jacques Boigontier ("Envoi par OutLook d'un onglet du classeur actif") qui fonctionne très bien (merci Jacques pour votre travail !), hormis le fait que je dois l'utiliser sur 2 PC. L'un tourne avec Office 2010 et l'autre avec Office 2007. Voici le code de Jacques :

Sub envoi_Feuille()
répertoireAppli = ActiveWorkbook.Path
Sheets("résultats").Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs répertoireAppli & "\Resultats.xls"
ActiveWindow.Close
'--- Envoi par mail
Dim olapp As Outlook.Application 'dans Outils/Références cocher OutLook
Sheets("destinataires").Select
Range("A11").Select
Do While Not IsEmpty(ActiveCell)
Dim msg As MailItem
Set olapp = New Outlook.Application
Set msg = olapp.CreateItem(olMailItem)
msg.To = ActiveCell.Value
msg.Subject = Range("A2").Value
msg.Body = Range("A5").Value & Chr(13) & Chr(13) & Range("A8").Value & Chr(13) & Chr(13)
msg.Attachments.Add Source:=répertoireAppli & "\Resultats.xls"
msg.Send
ActiveCell.Offset(1, 0).Select
Loop
End Sub

Mon PROBLEME : avec Office 2010, "Outils/Références cocher OutLook" fait référence à "Microsoft Outlook 14.0 Object Library" alors que Office 2007 fait référence à "Microsoft Outlook 12.0 Object Library". Impossible de m'en sortir !
Une idée pour contourner le problème ?
Merci beaucoup pour votre aide.
 

tototiti2008

XLDnaute Barbatruc
Re : Outils/Références cocher OutLook : Envoi par OutLook d'un onglet du classeur act

Re,

@David : le projet VBA doit être approuvé pour que l'on puisse activer les références, mais pas forcément pour créer les objets avec CreateObject, il me semble (ou alors je n'ai pas bien compris ce que tu voulais dire)
 

tototiti2008

XLDnaute Barbatruc
Re : Outils/Références cocher OutLook : Envoi par OutLook d'un onglet du classeur act

Bonjour à tous,

Sur la base du code de David

Code:
Sub a()
    Dim ref As Object
    'Ajout ref
    Chemin_Office = Application.Path
    refword = Chemin_Office & "\msword.olb"
    With ThisWorkbook.VBProject.References
        .AddFromFile refword
    End With
    'Suppression Ref
    For Each ref In ThisWorkbook.VBProject.References
        If UCase(ref.fullpath) = UCase(refword) Then
            ThisWorkbook.VBProject.References.Remove ref
        End If
    Next
End Sub

Maintenant si tu ne sais pas où sont les fichiers de toutes tes références, tu peux passer par AddfromGUID et comparer ref.GUID à celui de la référence à supprimer
 

tototiti2008

XLDnaute Barbatruc
Re : Outils/Références cocher OutLook : Envoi par OutLook d'un onglet du classeur act

Bonjour à tous,

je ne trouve rien sur AddfromGUID et ref.GUID

Va voir le message #25 de ce fil, un exemple d'utilisation
Sinon, un code équivalent au dernier proposé avec les GUID

Code:
Sub a()
    Dim ref As Object
    'Ajout ref
    RefWord = "{00020905-0000-0000-C000-000000000046}"
    With ThisWorkbook.VBProject.References
        .AddFromGuid RefWord, 0, 0
    End With
    'Suppression Ref
    For Each ref In ThisWorkbook.VBProject.References
        If ref.GUID = RefWord Then
            ThisWorkbook.VBProject.References.Remove ref
        End If
    Next
End Sub
 

hidozo

XLDnaute Occasionnel
Re : Outils/Références cocher OutLook : Envoi par OutLook d'un onglet du classeur act

re,

Merci pour les infos.

Pour l'instant, j'ai fait une recherche des adresses des fichiers dont j'avais besoin sur version 2000, 2003, 2007, 2010 et j'ai utilisé ton code pur cocher avec un on error resume next au début

Apparemment cela fonctionne. Je vais le tester sur les différentes versions et sur plusieurs ordi

Cordialement

Hidozo
 

Discussions similaires

Statistiques des forums

Discussions
312 097
Messages
2 085 257
Membres
102 840
dernier inscrit
blaise09