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 :

Envoi mail Outlook via VBA Excel erreur


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 96
    Points : 53
    Points
    53
    Par défaut Envoi mail Outlook via VBA Excel erreur
    Bonjour le forum,

    Je souhaite envoyer un ficher excel en PJ d'un mail via Outlook 2003 sans le message d'avertissement généré par Outlook.
    J'ai trouvé le code nécessaire sur Internet mais j'ai cette erreur
    erreur d'execution 438 propriete ou méthode non gérée par cet objet
    voici le code
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    Sub Envoi_chef()
     
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
     
    Set wbk = ActiveWorkbook
    Set shrq = ActiveSheet
     
    Quart = Range("V2").Value
    stFichier = "Rapport " & Quart & ".xls"               'Nom Fichier temporaire
    stFichierComp = "H:\Rapport\" & stFichier                 'Nom complet
     
    stExistFich = Dir(stFichierComp)                       ' existence du fichier archive
     
    If stExistFich = "" Then                               'Si n'existe pas on le crée
        Workbooks.Add
     
        Set arwbk = ActiveWorkbook
        Set shm = ActiveSheet
        shrq.Copy shm                                       'on copie la feuille dans le classeur
        shm.Delete                                          'on supprime les autres feuilles
        Sheets("feuil2").Delete
        Sheets("feuil3").Delete
        ActiveSheet.Name = Quart                           'on renomme la feuille restante par le quart
        Sheets(Quart).Unprotect ""
    End If
    'permet de rompre les liaisons
           ActiveWorkbook.BreakLink Name:="H:\Rapport\Rapport_données.xls", Type _
            :=xlExcelLinks
    'on enregistre la feuille puis on referme
           arwbk.SaveAs Filename:=stFichierComp
           arwbk.Close
     
    Set shm = Nothing
    Set arwbk = Nothing
    Set shrq = Nothing
    Set wbk = Nothing
     
    Dim oApp As Outlook.Application
    Set oApp = New Outlook.Application
    Dim monmail As MailItem
    Set monmail = oApp.CreateItem(olMailItem)
    monmail.Subject = "test ss message de secu"
    monmail.To = "toto@mail.fr"
    monmail.Attachments.Add (("H:\Rapport\" & stFichier))
    monmail.Save
    Kill "H:\Rapport\" & stFichier
    Dim strID As String
    strID = monmail.EntryID
    Call oApp.send_Monmail(strID) '=======>c'est ici que ça coince
    Set monmail = Nothing
    Set oApp = Nothing
     
    'pour envoyer le fichier au chef d'unité via Outlook
    'With Olmail
        '.To = 
    '    .To = 
    '    .Subject = "Rapport de quart"
     '   .Body = "essai d'envoi rapport"
    'affichage du mail puis envoi automatique par la fonction SendKeys
    '    .Display
    '    .Attachments.Add (("H:\Rapport \" & stFichier))
    '    SendKeys "^{ENTER}"
     
    'End With
     
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
     
    End Sub
    Ca coince sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call oApp.send_Monmail(strID)
    et j'ai placé ce code dans this Outlook Session
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub send_Monmail(StrID As String)
    Dim monmail
    Set monmail = Application.GetNamespace("MAPI").GetItemFromID(StrID)
    monmail.Send
    End Sub
    Est ce que vous savez d'ou peut venir cette erreur.

    Merci et bonne journée

    PS:Comme vous pouvez le voir, j'ai essayé avec la méthode display sendkeys("^{ENTER}") mais elle marche de façon aléatoire.

  2. #2
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut,
    Regardes le post ci-joint il utilise un Timer
    Bien qu'i y ai un soucis de lenteur non résolu ça fonctionne, il me semblait avoir un jour vu un autre post traitant du même sujet mais je ne le retrouve pas...

    http://www.developpez.net/forums/d79...-mail-outlook/

    A+
    N'oubliez pas le si votre problème est solutionné.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 96
    Points : 53
    Points
    53
    Par défaut
    Un timer est bien utilisé, mais il utilse surtout la méthode display et sendkeys qui chez moi ne marche pas tout le temps, et j'ai besoin de faire quelque chose qui soit fiable à 100%. Je ne pense pas qu'un timer soit la cause du problème, mais je vais essayer.

    C'est pour ça que j'ai cherché et trouver cette autre méthode, mais je n'arrive pas à la faire fonctionner.

  4. #4
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Re,
    C'est bien parce que le send key ne fonctionne pas toujours qu'il utilise le Timer, en fait le send key ne fonctionne pas si le temps de réponse est trop long.
    C'est pour ça que j'aimerais bien retrouver l'autre post car le problème que tu indique avait été solutionné en augmentant le Timer de 10 à 30 (si je me souviens bien) et c'est ce même principe que j'avais utilisé.
    Je sais que c'est pas la solution idéale mais j'ai rien trouvé de mieux...
    D'ailleurs si tu trouves mieux, je suis preneur.

    A+
    N'oubliez pas le si votre problème est solutionné.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 96
    Points : 53
    Points
    53
    Par défaut
    ne serait pas ce message que tu cherches http://www.developpez.net/forums/d67...outlook-excel/.
    Je comprends mieux le problème du timer maintenant.

  6. #6
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Citation Envoyé par altra Voir le message
    ne serait pas ce message que tu cherches http://www.developpez.net/forums/d67...outlook-excel/.
    Je comprends mieux le problème du timer maintenant.
    C'est bien ça, je savais bien que j'avais vu une discussion plus adaptée à ton cas...

    J'avais aussi tenté une solution qui aurait été de vérifier si il n'y avait rien dans Outbox, si oui => Timer + Send key; sinon suite de la procédure mais j'ai pas abouti le Timer ayant été suffisant pour moi.

    Bonne continuation.
    N'oubliez pas le si votre problème est solutionné.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 96
    Points : 53
    Points
    53
    Par défaut
    J'ai mis la main sur celui ci aussi http://www.developpez.net/forums/d29...-piece-jointe/ qui fonctionne pour moi avec la methode display sendkeys.

    Par contre personne ne sait d'ou provient l'erreur que j'ai avec l'autre méthode.
    Fvandermeulen as tu essayé cette methode chez toi.
    Si tu arrives à la faire fonctionner dis le moi.

    Merci

  8. #8
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut,
    Intéressant le lien...
    J'ai testé la première sans succès et avant de chercher la raison, j'ai testé la deuxième (méthode CDO) qui fonctionne très bien
    Je me repencherai sur la première quand j'aurai un peu de temps.

    A+
    N'oubliez pas le si votre problème est solutionné.

Discussions similaires

  1. [XL-2010] Envoi mail outlook par VBA Excel
    Par bboy-eazy dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/12/2014, 07h38
  2. [XL-2010] envoi mail outlook avec vba excel
    Par fazpedro dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 30/09/2014, 10h27
  3. [XL-2007] envoi mail outlook avec vba excel
    Par yaco32 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/01/2013, 15h57
  4. envoi mail outlook avec vba excel
    Par momolamoto dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/09/2010, 10h45
  5. Manipulation du carnet d'adresse outlook via VBA Excel?
    Par Dragon Tours dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/11/2005, 12h16

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