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 :

problème pour copier feuille excel vers Outlook avec des objets Graphe


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 103
    Points : 44
    Points
    44
    Par défaut problème pour copier feuille excel vers Outlook avec des objets Graphe
    bonjour

    je travaille sur une application VBA/Exel qui permet de se connecter sur une base de données et remplir la feuil Excel par ces données et après envoyer ces infos par mail vers Outlouk j'ai pu trouver le code qui me permet de faire ça mais le problème c'est que cette fonction ne fait pas copier les graphes.
    merci de m'aider pour trouver une solution.
    ci-après le code que j'ai utilisé:
    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
    Sub Mail_Range_Outlook_Body1()
    ' Don't forget to copy the function RangetoHTML in the module.
    ' Working in Office 2000-2007
        Dim rng As Range
        Dim OutApp As Object
        Dim OutMail As Object
     
        With Application
            .EnableEvents = False
            .ScreenUpdating = False
        End With
     
        Set rng = Nothing
        On Error Resume Next
        Set rng = Sheets("Feuil1").Range("A1:M166").SpecialCells(xlCellTypeVisible)
     
        On Error GoTo 0
     
        If rng Is Nothing Then
            MsgBox "The selection is not a range or the sheet is protected" & _
                   vbNewLine & "please correct and try again.", vbOKOnly
            Exit Sub
        End If
     
        Set OutApp = CreateObject("Outlook.Application")
        OutApp.Session.Logon
        Set OutMail = OutApp.CreateItem(0)
     
        On Error Resume Next
        With OutMail
            .To = "mail@mail.com"
            .CC = ""
            .BCC = ""
            .Subject = "This is the Subject line"
            .HTMLBody = RangetoHTML(rng)
            .Display   'or use .Send
        End With
        On Error GoTo 0
     
        With Application
            .EnableEvents = True
            .ScreenUpdating = True
        End With
     
        Set OutMail = Nothing
        Set OutApp = Nothing
    End Sub
    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
    Function RangetoHTML(rng As Range)
    ' Changed by Ron de Bruin 28-Oct-2006
    ' Working in Office 2000-2007
        Dim fso As Object
        Dim ts As Object
        Dim TempFile As String
        Dim TempWB As Workbook
     
        TempFile = Environ$("temp") & "\" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
     
        'Copy the range and create a new workbook to past the data in
        rng.Copy
        Set TempWB = Workbooks.Add(1)
        With TempWB.Sheets(1)
            .Cells(1).PasteSpecial Paste:=8
            .Cells(1).PasteSpecial xlPasteValues, , False, False
            .Cells(1).PasteSpecial xlPasteFormats, , False, False
            .Cells(1).Select
            Application.CutCopyMode = False
            On Error Resume Next
            .DrawingObjects.Visible = True
            .DrawingObjects.Delete
            On Error GoTo 0
        End With
     
        'Publish the sheet to a htm file
        With TempWB.PublishObjects.Add( _
             SourceType:=xlSourceRange, _
             Filename:=TempFile, _
             Sheet:=TempWB.Sheets(1).Name, _
             Source:=TempWB.Sheets(1).UsedRange.Address, _
             HtmlType:=xlHtmlStatic)
            .Publish (True)
        End With
     
        'Read all data from the htm file into RangetoHTML
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
        RangetoHTML = ts.readall
        ts.Close
        RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
                              "align=left x:publishsource=")
     
        'Close TempWB
        TempWB.Close savechanges:=False
     
        'Delete the htm file we used in this function
        Kill TempFile
     
        Set ts = Nothing
        Set fso = Nothing
        Set TempWB = Nothing
    End Function

  2. #2
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 103
    Points : 44
    Points
    44
    Par défaut
    merci de me réponde SVP

Discussions similaires

  1. [XL-2010] Problème de copier/coller Excel vers Word
    Par orsanofear dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/10/2012, 20h01
  2. [WD17] Copier feuille excel vers un autre classeur‎
    Par THOMAS Patrice dans le forum WinDev
    Réponses: 4
    Dernier message: 30/05/2012, 15h17
  3. Réponses: 3
    Dernier message: 06/05/2011, 11h39
  4. Problème pour création feuille Excel - POI
    Par Frigok dans le forum Documents
    Réponses: 2
    Dernier message: 06/04/2009, 16h05
  5. VBA -Copier cellules Excel vers outlook
    Par Rdesfx dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/11/2008, 16h29

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