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

Macros et VBA Excel Discussion :

Erreur chargement DLL [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 152
    Par défaut Erreur chargement DLL
    Bonjour

    J'ai créé un programme VBA sous la version Excel 2010 qui permet d'envoyer des mails et je fais référence aux DLL Outlook
    Outil > Reference : Microsoft Outlook 14.0 Object Library

    Le problème c'est que certains de mes collègues ont la 2013 et ont enregistrés le fichier.
    Donc quand je l'ouvre, il me met "MANQUANT : Microsoft Outlook 15.0 Object Library"

    Si j'essaie de décocher le MANQUANT et de réactiver le Microsoft Outlook 14.0 Object Library, ça ne fonctionne pas.
    J'ai essayé en désactivant les macros comme indiqué sur ce post, et ça ne fonctionne pas non plus.
    http://www.developpez.net/forums/d82...hargement-dll/

    Comment faire pour que les 2 versions cohabitent ensemble ?

    De plus je ne peux pas modifier le code source car le module ne s'ouvre plus car la DLL est introuvable.
    J'ai une copie où je peux encore ouvrir le code, par contre si j'essaie d'enregistrer les modifs, même topo

    Voici le code qui pose problème
    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
     
    Sub SendMail(adresse_email, chemin As String, nomFichier As String, nb_selection As Integer)
     
      Dim OlApp As Outlook.Application
        Dim OlItem As Outlook.MailItem
        'Nécessite d'activer la référence "Microsoft Outlook xx.x Object Library"
        ' vba, menu outils>references
     
        Set OlApp = New Outlook.Application
        Set OlItem = OlApp.CreateItem(olMailItem)
     
        Dim i As Integer
        Dim destinataires As String
        Dim content As String
        Dim date_limite As Date
     
        'creation liste destinataires separe par des points virgules
        For i = 0 To UBound(adresse_email)
            If (adresse_email(i) <> "") Then
                destinataires = destinataires & adresse_email(i) & ";"
            End If
        Next
        ' suppresion du dernier point virgule
        destinataires = Left(destinataires, Len(destinataires) - 1)
     
        'creation text contenu
        date_limite = Now() + 7
        Call fichierSourceDest
        content = "Merci d'étudier la demande et d'insérer vos observations dans le fichier " & vbNewLine & destination & " avant le " & date_limite
     
     
        With OlItem
            .To = destinataires        
            .Subject = "Demande d'amélioration à étudier avant le " & date_limite
            .Body = content
            .Display
            .Save
            .Send
        End With
     
        Set OlItem = Nothing
        Set OlApp = Nothing
    End Sub
    Comment puis-je faire pour faire cohabiter les 2 versions?

    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    conseiller
    Inscrit en
    Janvier 2013
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : conseiller
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 367
    Par défaut
    Bonjour,
    déclare les variables objets en objet instancie l'objet Outlook via un CreateObject et remplace les constantes employées par leur valeur numérique.
    A+

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 152
    Par défaut
    Merci pour la réponse,

    effectivement la variable n'était pas déclarée.
    Par contre je ne comprends pas trop "instancie l'objet Outlook via un CreateObject et remplace les constantes employées par leur valeur numérique."
    pourriez-vous me donner un exemple SVP

    MErci d'avance

  4. #4
    Membre émérite
    Homme Profil pro
    conseiller
    Inscrit en
    Janvier 2013
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : conseiller
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 367
    Par défaut
    effectivement la variable n'était pas déclarée
    Si elle est déclarée puisque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim OlApp As Outlook.Application
    Par contre je ne comprends pas trop "instancie l'objet Outlook via un CreateObject et remplace les constantes employées par leur valeur numérique."
    Désolé mais comme tu as dit dans ton 1er message que tu as créé l'application j'en ai déduit que tu savais de quoi je parlais.
    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set OlApp = New Outlook.Application
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set OlApp = CreateObject("Outlook.Application")
    Concernant les constantes : dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set OlItem = OlApp.CreateItem(olMailItem)
    remplace olMailItem par sa valeur numérique (pour olMailItem par exemple c'est la valeur zéro)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set OlItem = OlApp.CreateItem(0)
    Fais de même pour les autres constantes utilisées s'il y en a d'autres en les remplaçant par leur valeur numérique.
    Tu trouveras ces constantes sur le Net (un exemple ici dans le fichier text à télécharger).
    A+

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Inutile de modifier toutes les constantes dans ton programme.

    Crée dans un module les constantes en tant que constantes et affecte leur la valeur numérique. Ce sera plus simple.

    Philippe

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 152
    Par défaut
    ok merci, je comprends mieux, mais où dois-je indiquer d'activer la version 14 ou 15 pour que ça fonctionne sur les 2 versions.
    Actuellement je l'avais coché manuellement sur ma version lors du dev. Mais dès qu'une version 2013 ouvre le fichier et l'enregistre ça me coche la version 15 et m'indique "manquant" sur ma version ?

    Je ne vois pas le fichier text dont vous parlez.

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

Discussions similaires

  1. [XL-2003] Erreur chargement DLL
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 19/01/2011, 10h09
  2. [XL-2003] Erreur de chargement DLL
    Par thomasdu40 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/12/2010, 16h16
  3. Erreur de chargement DLL
    Par sylvain.cool dans le forum C++
    Réponses: 9
    Dernier message: 12/06/2008, 16h12
  4. Erreur de chargement DLL
    Par olisony dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/02/2008, 12h57
  5. Erreur chargement DLL
    Par fafabzh6 dans le forum Sécurité
    Réponses: 1
    Dernier message: 17/09/2007, 16h59

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