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 :

Mail par Excel 2010 : la méthode Chart.Paste a échoué [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Mail par Excel 2010 : la méthode Chart.Paste a échoué
    Bonjour le Forum,

    Je souhaite copier une plage de cellule dans mon corps de texte mail, via une image temporaire.

    Cette méthode était effective sur Excel 2003. Elle est en échec sur Excel 2010.

    La méthode utilisée
    - emploi de Outlook.application
    - création image temporaire
    - collage dans le corps de texte par SendKeys

    Soit

    Déclaration variable (image temporaire) à portée module

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Const Img_temp As String = "lerépertoire.imagetemp.jpg"
    Envoi image
    = Procédure Principale

    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
    Sub Envoi_Documents()
     
    Dim Applic_Outlook As Outlook.Application
    Dim MonItem As Outlook.MailItem
    Dim Document As Range
    Dim Objet_Mail As String
    Dim Adresse_Mail As String
    Dim Fichier_joint As String
     
    'Crée l'objet Outlook
    Set Applic_Outlook = New Outlook.Application
     
     
    'Créer l'élément de mail et le transmettre
    Set MonItem = Applic_Outlook.CreateItem(olMailItem)
    With MonItem
            .To = l_dest
            .Subject = Objet_Mail
            .cc = "tralala@citron.fr"
            .Categories = "Daily"
            Fichier_joint = "\\lechemin.monfichier.pdf"
            .Attachments.Add Fichier_joint
            Application.wait (Now + TimeValue("0:00:01"))
            .Display
    End With
     
    'copie du corps de texte dans le corps de message
    Call Plage_Mail
    Application.wait (Now + TimeValue("00:00:05"))
    AppActivate Objet_Mail & " - Message", 0   ' Active Outlook
    Application.wait (Now + TimeValue("00:00:05"))
    SendKeys "^v", True  ' coller
    Application.wait (Now + TimeValue("00:00:05"))
    SendKeys "%v", True  ' Envoi du message
    Application.CutCopyMode = False
     
    Set Applic_Outlook = Nothing
     
    ActiveWindow.DisplayGridlines = True
     
    End Sub
    Procédure annexe appelée dans la procédure principale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Plage_Mail()
    Call Image_Temporaire
    End Sub
    Procédure annexe créant l'image temporaire

    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
    Sub Image_Temporaire(Optional dummy As Byte)
    Dim cellule_corp As Range
    Dim image_chart As ChartObject
    On Error Resume Next
    For Each image In ActiveSheet.Charts
        image.Delete
    Next
    On Error GoTo 0
    Set cellule_corp = Range("corps_3")
    With cellule_corp
        .Columns.AutoFit
        .CopyPicture xlScreen, xlBitmap
        Set image_chart = ActiveSheet.ChartObjects.Add( _
            .Left, .Top, .Width, .Height)
    End With
    With image_chart.Chart
         .Paste
        .Export FileName:=Img_temp
    End With
    image_chart.Delete
    Set image_chart = Nothing
    Set cellule_corp = Nothing
    End Sub
    Comme mentionné plus haut, le code est effectif sur Excel 2003.
    Sur Excel 2010, pour cette dernière procédure, erreur sur la ligne de code

    Erreur 1004
    La méthode -Paste de l'Objet _Chart a échoué
    Pourquoi?

    J'ai cherché une explication, sans succès.

    Par avance, merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Peut-être que la solution est dans ce post exporter-images-en-vba

    Cordialement.

  3. #3
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Affiche image mail
    Bonjour le Forum, Bonjour Eric,

    Ton code est effectif. Merci.

    Je ne m'explique pas l'anomalie que j'ai signalée sur la seule version Office 2010. Mais ce lien me sera bien utile dans un premier temps.

    Bonne journée.

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

Discussions similaires

  1. [XL-2010] "Data Validation " perdue par Excel 2010
    Par Godzestla dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 10/12/2013, 15h31
  2. [XL-2010] Envoi mail par excel avec boucle pour tous les champs
    Par jul2012 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/11/2012, 14h54
  3. Création de mail par excel vers Lotus Notes
    Par volle dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 12/10/2009, 15h55
  4. Envoi mail par excel avec thunderbird
    Par triaguae dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/05/2009, 14h08
  5. Envoi mail par excel avec thunderbird
    Par siderfan49 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/09/2008, 10h09

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