IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Outlook Discussion :

Macro défaillante depuis migration XP -> win7 (Outlook 2007 inchangé) [OL-2007]


Sujet :

VBA Outlook

  1. #1
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Macro défaillante depuis migration XP -> win7 (Outlook 2007 inchangé)
    Bonjour,

    J'ai une macro Outlook, développée par un collègue (en congés sinon c'est trop facile) , qui ne fonctionne plus depuis que l'on a migré mon poste de XP à Windows 7.

    On a pourtant sauvegardé tout ce qui était possible (outlook.ost,...)

    Mais la macro provoque une erreur...

    Pour info :
    - le dossier de contacts "Publi" existe bien. C'est à n'y rien comprendre !!!
    - La macro consiste à aller chercher mon groupe de contacts "publi" et d'envoyer un mail à chacun de ces contacts avec le même corps de mail, mais une PJ Excel différente (listing personnalisé)

    Voici le coupable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub EnvoiPubli()
     
        Dim olApp As Outlook.Application
        Dim objDosContact As Outlook.MAPIFolder
        Dim objContact As Outlook.ContactItem
        Dim Contact As Outlook.ContactItem
     
        Set olApp = New Outlook.Application
        Set objDosContact = olApp.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts).Folders("Publi")
    c'est là qu'il met l'erreur d'execution -2147221233 (8004010f) impossible de trouver un objet..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    Sub EnvoiPubli()
     
        Dim olApp As Outlook.Application
        Dim objDosContact As Outlook.MAPIFolder
        Dim objContact As Outlook.ContactItem
        Dim Contact As Outlook.ContactItem
     
        Set olApp = New Outlook.Application
        Set objDosContact = olApp.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts).Folders("Publi")
        ' Pour chaque contact du dossier Publi
        For Each Contact In objDosContact.Items
            'Pour débuguer on peut afficher l'adresse et la ville
            'MsgBox (Contact.Email1Address)
            'MsgBox (Contact.BusinessAddressCity)
            'MsgBox (Contact.CompanyName)
     
            'Création du mail
            Set MyMail = olApp.CreateItem(olMailItem)
            'AJOUT BENJ choix de l'adresse d'envoi (champs "de")
            MyMail.SentOnBehalfOfName = "polegestion@59.fr"
            'Adresse de l'expéditeur dans le champs adresse mail
            MyMail.To = Contact.Email1Address
            'Sujet : ce qu'on veut
            MyMail.Subject = "Publipostage Listing des bénéficiairesr pour " & Contact.CompanyName
            'Corps du message
            MyMail.BodyFormat = olFormatHTML
            MyMail.HTMLBody = "<font size=3 FACE=Calibri> <html><body>&nbsp; &nbsp; &nbsp;Bonjour, <br> <br> " & _
    "&nbsp; &nbsp; &nbsp;Cordialement,<br><br> " & _
    "Le sec.fr</i></body><HTML>"
     
            'Le fichier joint, on va le chercher dans le champs ville
            MyMail.Attachments.Add (Contact.BusinessAddressCity)
     
            'On prepare l'envoi
            MyMail.Display
            'on envoie automatiquement
            'MyMail.Send
         On Error Resume Next
     
            If Err.Number <> 0 Then
                MsgBox ("Erreur pour :" & Contact.Email1Address)
            Else
                'On envoie
                MyMail.Display
            End If
     
        Next Contact
    End Sub
    Merci de ce que vous pourriez faire !!
    Cordialement,
    Jabenj

  2. #2
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Quand vous dites que vous avez migré? Avez vous installé Windows7 64bits ou Windows 7 32bits?
    Si c'est sur Windows7 64bits, Quelle version d'Office a été installée (32bits ou 64bits)?

    Je pense que c'est un problème au niveau des références du projet VBA.
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  3. #3
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonjour Carden752

    La migration s'est faite sous win 7 64 bits. d'après mes recherches, Office 2007 n'existerait qu'en 32 bits (?)

    D'après-vous il serait possible que je sois limité par ces problèmes de versions ? (je présume que ma version d'xp était en 64 également, pourtant le pb ne se posait pas)

    Pour les références du projet, j'y ai pensé, mais suis incapable de vérifier quelles étaient-elles. Néanmoins, je crois me souvenir que la référence "Microsoft Office 12.0 Object Library" était peut-être en 11.0...

    Cela vous parait-il probable ? Ou quelle référence dois-je sélectionner dans ce cas ?

    Merci pour votre réponse !

  4. #4
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Effectivement Office2007 n'existe qu'en 32bits.
    Pour s'assurer qu'il ne s'agit pas d'un problème de référence, on va passer en programmation de type LateBinding c'est à dire en créant des objets.
    Pouvez vous donc remplacer les 2 lignes suivantes par celles la.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ' Dim olApp As Outlook.Application
    'Set olApp = New Outlook.Application
    à remplacer par 
    Dim olApp as Object
    Set olApp = CreateObject("Outlook.Application")
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  5. #5
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonjour et merci pour votre implication !

    Je viens d'effectuer les changements conseillés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub EnvoiPubli()
     
        'Dim olApp As Outlook.Application
        Dim olApp As Object
        Dim objDosContact As Outlook.MAPIFolder
        Dim objContact As Outlook.ContactItem
        Dim Contact As Outlook.ContactItem
     
        'Set olApp = New Outlook.Application
        Set olApp = CreateObject("Outlook.Application")
        Set objDosContact = olApp.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts).Folders("Publi")
    Mais cela donne en effet toujours la même erreur...

    Pour info, j'ai essayé sur un poste encore sous XP, et le meme message d'erreur apparait...

    Ceci, j'imagine, efface l'idée de l'erreur provoquée par la migration, je pense..

    Neanmoins, peut-il s'agir d'un problème lié au réseau de l'entreprise ? ou au "MAPI perdu" ? (la macro fonctionnait bien auparavant, je ne comprends vraimeent pas !!)

    Merci encore !

  6. #6
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    C'est résolu !

    En fait trééééés bétement, le dossier de contacts "publi" n'était pas créé dans le dossier "contact" donc n'était pas un sous-dossier de "contacts" mais bel et bien un dossier a part entière ...!

    Désolé pour ce dérangement !!!!

    Cordialement,
    benjamin

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 24/09/2019, 10h50
  2. [XL-2007] Problème de macro qui ne marche plus depuis migration sur 2007
    Par tunimaal dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/01/2013, 09h51
  3. Macro Excel depuis outlook
    Par Chipss dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 23/09/2010, 10h47
  4. Lancer une macro Excel depuis Access
    Par marcobosio dans le forum Access
    Réponses: 6
    Dernier message: 05/06/2006, 20h51
  5. [VBA-E] Appel macro Access depuis Excel en mode silencieux
    Par lordkoko dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/05/2006, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo