Coellophysis | Bonjour à tous,
Voilà, pour le travail, j'avais une macro qui copiait un tableau et l'envoyait via Outlook mais depuis que j'ai migré de XP à Wds 7, elle fonctionne plus. Le bug arrive au moment où le tableau doit être copié. Je reçois un message plutôt général comme "method or data member not found".
J'ai essayé de chercher des pistes sur le net mais je ne trouve pas, je vous remercie pour votre aide.
Apparemment il y a des balises C/C pour les codes mais honnêtement, je ne comprends pas de quoi il s'agit, si vous m'expliquez, je modifierai le codes dans le format désiré.
Voici le code:
Code :
- Option Explicit
- Sub CreateEmail()
- 'create picture files
- Dim rng As Range
- Dim strFolder As String
- strFolder = ActiveWorkbook.path & "\"
- Set rng = Sheet5.Range("v_report" )
- If Not ExportRangeToPicture(rng, strFolder & "profile_vol.png" ) Then
- MsgBox "Error while creating png files"
- GoTo ExitProc
- End If
- 'prepare email
- Dim strHTML As String
- Dim myOlApp As Variant, myItem As Variant, olMailItem As Variant
- Set myOlApp = CreateObject("Outlook.Application" )
- Set myItem = myOlApp.CreateItem(olMailItem)
- myItem.Subject = Sheet5.Range("em_subject" ).Value
- myItem.To = Sheet5.Range("em_to" ).Value
- myItem.CC = Sheet5.Range("em_cc" ).Value
- 'myItem.Importance = Outlook.OlImportance.olImportanceLow
- myItem.Attachments.Add strFolder & "profile_vol.png"
- strHTML = "<html><img src='profile_vol.png'><br><br>"
- strHTML = strHTML + "</html>"
- myItem.HTMLBody = strHTML
- myItem.Display
- ExitProc:
- End Sub
- Function ExportRangeToPicture(rng As Excel.Range, img As String) As Boolean
- ' save a range from Excel as a picture
- ' rng = Range to export
- ' img = filename & path
- ' basic error checking
- ' check for valid filetypes
- ' from http://peltiertech.com/WordPress/e [...] mage-file/
- 'Const FILE_EXT As String = "gif,png,jpg,jpe,jpeg"
- 'If InStr(FILE_EXT, LCase$(Right$(img, 3))) = 0 Then
- 'GoTo ExitProc
- 'End If
- ' check for valid path
- 'Dim path As String
- 'path = Left(img, InStrRev(img, "\" ))
- 'If Dir(path, vbDirectory) = "" Then GoTo ExitProc
- ' check for valid range
- Dim rRng As Range
- On Error Resume Next
- Set rRng = rng
- On Error GoTo 0
- If rRng Is Nothing Then GoTo ExitProc
- ' check for protected worksheet
- If ActiveSheet.ProtectContents Then GoTo ExitProc
- ' copy range to picture, put into chart, export it
- 'Application.ScreenUpdating = False
- rRng.CopyPicture xlScreen, xlBitmap
- Dim cht As ChartObject
- Set cht = Sheet1.ChartObjects.Add(0, 0, rRng.Width + 1, rRng.Height + 1)
- With cht
- .Chart.ChartArea.Border.LineStyle = xlLineStyleNone
- .Chart.PasteSpecial.xlPasteValues
- .Chart.Export img, Filtername:="png"
- .Delete
- End With
- ' if we got this far, assume success
- ExportRangeToPicture = True
- ExitProc:
- 'Application.ScreenUpdating = True
- Set cht = Nothing
- Set rRng = Nothing
- End Function
|
Bien à vous Message édité par Coellophysis le 19-07-2016 à 09:40:35
|