GNT sans publicité, site mobile, fonctionnalitées exclusives...

Exporter un graphique en WMF par VBA

Le
Francois L
Bonjour à tous,

Est-ce que quelqu'un saurait faire ça ?
Les classiques GIF, JPEG, etc. je sais mais j'aurais vraiment besoin de
créer des WMF !

Merci

--
François L
Lire les 11 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel Pierron
Le #4570241
Bonjour François;
Essaie comme ceci:

Private Declare Function _
CloseClipboard& Lib "user32" ()
Private Declare Function _
OpenClipboard& Lib "user32" (ByVal hwnd&)
Private Declare Function _
EmptyClipboard& Lib "user32" ()
Private Declare Function _
GetClipboardData& Lib "user32" (ByVal wFormat&)
Private Declare Function CopyEnhMetaFileA& _
Lib "gdi32" (ByVal hemfSrc&, ByVal lpszFile$)
Private Declare Function _
DeleteEnhMetaFile& Lib "gdi32.dll" (ByVal hemf&)

Sub SaveAsMetafile()
If ThisWorkbook.Sheets(1).ChartObjects.Count = 0 Then Exit Sub
On Error GoTo SaveWmf_Error
Dim Img As ChartObject, hCopy&, fName$
For Each Img In ThisWorkbook.Sheets(1).ChartObjects
Img.Copy: OpenClipboard 0&
hCopy = GetClipboardData(14)
If hCopy Then
fName = "C:" & Img.Name & ".wmf"
DeleteEnhMetaFile CopyEnhMetaFileA(hCopy, fName)
EmptyClipboard
End If
CloseClipboard
Next Img
Exit Sub
SaveWmf_Error:
MsgBox "Error " & Err.Number & vbLf & Err.Description, 48
End Sub

MP


"Francois L" %
Bonjour à tous,

Est-ce que quelqu'un saurait faire ça ?
Les classiques GIF, JPEG, etc. je sais mais j'aurais vraiment besoin de
créer des WMF !

Merci

--
François L


Misange
Le #4570221
Superbe, comme d'hab :-)


Attention cependant, je n'ai pas pu tester mais j'ai lu que dans excel
2007 wmf n'est plus supporté ? Celui qui disait cela ralait car il avait
des classeurs avec des dizaines de graphiques conservés au format wmf
dans excel et qu'il ne pouvait plus les voir avec excel 2007. Tu
confirmes Michel si tu as 2007 ?

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour François;
Essaie comme ceci:

Private Declare Function _
CloseClipboard& Lib "user32" ()
Private Declare Function _
OpenClipboard& Lib "user32" (ByVal hwnd&)
Private Declare Function _
EmptyClipboard& Lib "user32" ()
Private Declare Function _
GetClipboardData& Lib "user32" (ByVal wFormat&)
Private Declare Function CopyEnhMetaFileA& _
Lib "gdi32" (ByVal hemfSrc&, ByVal lpszFile$)
Private Declare Function _
DeleteEnhMetaFile& Lib "gdi32.dll" (ByVal hemf&)

Sub SaveAsMetafile()
If ThisWorkbook.Sheets(1).ChartObjects.Count = 0 Then Exit Sub
On Error GoTo SaveWmf_Error
Dim Img As ChartObject, hCopy&, fName$
For Each Img In ThisWorkbook.Sheets(1).ChartObjects
Img.Copy: OpenClipboard 0&
hCopy = GetClipboardData(14)
If hCopy Then
fName = "C:" & Img.Name & ".wmf"
DeleteEnhMetaFile CopyEnhMetaFileA(hCopy, fName)
EmptyClipboard
End If
CloseClipboard
Next Img
Exit Sub
SaveWmf_Error:
MsgBox "Error " & Err.Number & vbLf & Err.Description, 48
End Sub

MP


"Francois L" %
Bonjour à tous,

Est-ce que quelqu'un saurait faire ça ?
Les classiques GIF, JPEG, etc. je sais mais j'aurais vraiment besoin de
créer des WMF !

Merci

--
François L






Michel Pierron
Le #4570161
Bonjour Misange;
Je ne sais pas, je n'ai pas Excel 2007; mais je ne vois pas pourquoi il y
aurait impossibilité, vu que le format metafile fait partie du système
Windows.

Bises;
MP

"Misange"
Superbe, comme d'hab :-)


Attention cependant, je n'ai pas pu tester mais j'ai lu que dans excel
2007 wmf n'est plus supporté ? Celui qui disait cela ralait car il avait
des classeurs avec des dizaines de graphiques conservés au format wmf dans
excel et qu'il ne pouvait plus les voir avec excel 2007. Tu confirmes
Michel si tu as 2007 ?

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour François;
Essaie comme ceci:

Private Declare Function _
CloseClipboard& Lib "user32" ()
Private Declare Function _
OpenClipboard& Lib "user32" (ByVal hwnd&)
Private Declare Function _
EmptyClipboard& Lib "user32" ()
Private Declare Function _
GetClipboardData& Lib "user32" (ByVal wFormat&)
Private Declare Function CopyEnhMetaFileA& _
Lib "gdi32" (ByVal hemfSrc&, ByVal lpszFile$)
Private Declare Function _
DeleteEnhMetaFile& Lib "gdi32.dll" (ByVal hemf&)

Sub SaveAsMetafile()
If ThisWorkbook.Sheets(1).ChartObjects.Count = 0 Then Exit Sub
On Error GoTo SaveWmf_Error
Dim Img As ChartObject, hCopy&, fName$
For Each Img In ThisWorkbook.Sheets(1).ChartObjects
Img.Copy: OpenClipboard 0&
hCopy = GetClipboardData(14)
If hCopy Then
fName = "C:" & Img.Name & ".wmf"
DeleteEnhMetaFile CopyEnhMetaFileA(hCopy, fName)
EmptyClipboard
End If
CloseClipboard
Next Img
Exit Sub
SaveWmf_Error:
MsgBox "Error " & Err.Number & vbLf & Err.Description, 48
End Sub

MP


"Francois L" news: %
Bonjour à tous,

Est-ce que quelqu'un saurait faire ça ?
Les classiques GIF, JPEG, etc. je sais mais j'aurais vraiment besoin de
créer des WMF !

Merci

--
François L







Misange
Le #4570141
C'était exactement la réflexion faite par celui qui se plaignait
tu trouves cela quelque part dans cette page :
http://www.edwardtufte.com/bboard/q...msg?msg_id02kk&topic_id=1

Qui a excel 2007 dans la salle pour tester ? ;-)
pas moi...

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour Misange;
Je ne sais pas, je n'ai pas Excel 2007; mais je ne vois pas pourquoi il y
aurait impossibilité, vu que le format metafile fait partie du système
Windows.

Bises;
MP

"Misange"
Superbe, comme d'hab :-)


Attention cependant, je n'ai pas pu tester mais j'ai lu que dans excel
2007 wmf n'est plus supporté ? Celui qui disait cela ralait car il avait
des classeurs avec des dizaines de graphiques conservés au format wmf dans
excel et qu'il ne pouvait plus les voir avec excel 2007. Tu confirmes
Michel si tu as 2007 ?

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour François;
Essaie comme ceci:

Private Declare Function _
CloseClipboard& Lib "user32" ()
Private Declare Function _
OpenClipboard& Lib "user32" (ByVal hwnd&)
Private Declare Function _
EmptyClipboard& Lib "user32" ()
Private Declare Function _
GetClipboardData& Lib "user32" (ByVal wFormat&)
Private Declare Function CopyEnhMetaFileA& _
Lib "gdi32" (ByVal hemfSrc&, ByVal lpszFile$)
Private Declare Function _
DeleteEnhMetaFile& Lib "gdi32.dll" (ByVal hemf&)

Sub SaveAsMetafile()
If ThisWorkbook.Sheets(1).ChartObjects.Count = 0 Then Exit Sub
On Error GoTo SaveWmf_Error
Dim Img As ChartObject, hCopy&, fName$
For Each Img In ThisWorkbook.Sheets(1).ChartObjects
Img.Copy: OpenClipboard 0&
hCopy = GetClipboardData(14)
If hCopy Then
fName = "C:" & Img.Name & ".wmf"
DeleteEnhMetaFile CopyEnhMetaFileA(hCopy, fName)
EmptyClipboard
End If
CloseClipboard
Next Img
Exit Sub
SaveWmf_Error:
MsgBox "Error " & Err.Number & vbLf & Err.Description, 48
End Sub

MP


"Francois L" news: %
Bonjour à tous,

Est-ce que quelqu'un saurait faire ça ?
Les classiques GIF, JPEG, etc. je sais mais j'aurais vraiment besoin de
créer des WMF !

Merci

--
François L









Michel Pierron
Le #4569971
Re Misange;
Oui, il faut vraiment xl2007 pour tester si le format wmf est toujours
présent dans le presse-papier lors d'une copie.
C'est bizarre, ils disent sur le lien que tu donnes que c'est à cause d'une
faille dans ce type de format qu'excel l'aurait volontairement abandonné,
hors, cette faille vient d'être corrigée par le récent correctif KB912919.

MP


"Misange"
C'était exactement la réflexion faite par celui qui se plaignait
tu trouves cela quelque part dans cette page :
http://www.edwardtufte.com/bboard/q...msg?msg_id02kk&topic_id=1

Qui a excel 2007 dans la salle pour tester ? ;-)
pas moi...

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour Misange;
Je ne sais pas, je n'ai pas Excel 2007; mais je ne vois pas pourquoi il y
aurait impossibilité, vu que le format metafile fait partie du système
Windows.

Bises;
MP

"Misange"
Superbe, comme d'hab :-)


Attention cependant, je n'ai pas pu tester mais j'ai lu que dans excel
2007 wmf n'est plus supporté ? Celui qui disait cela ralait car il avait
des classeurs avec des dizaines de graphiques conservés au format wmf
dans excel et qu'il ne pouvait plus les voir avec excel 2007. Tu
confirmes Michel si tu as 2007 ?

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour François;
Essaie comme ceci:

Private Declare Function _
CloseClipboard& Lib "user32" ()
Private Declare Function _
OpenClipboard& Lib "user32" (ByVal hwnd&)
Private Declare Function _
EmptyClipboard& Lib "user32" ()
Private Declare Function _
GetClipboardData& Lib "user32" (ByVal wFormat&)
Private Declare Function CopyEnhMetaFileA& _
Lib "gdi32" (ByVal hemfSrc&, ByVal lpszFile$)
Private Declare Function _
DeleteEnhMetaFile& Lib "gdi32.dll" (ByVal hemf&)

Sub SaveAsMetafile()
If ThisWorkbook.Sheets(1).ChartObjects.Count = 0 Then Exit Sub
On Error GoTo SaveWmf_Error
Dim Img As ChartObject, hCopy&, fName$
For Each Img In ThisWorkbook.Sheets(1).ChartObjects
Img.Copy: OpenClipboard 0&
hCopy = GetClipboardData(14)
If hCopy Then
fName = "C:" & Img.Name & ".wmf"
DeleteEnhMetaFile CopyEnhMetaFileA(hCopy, fName)
EmptyClipboard
End If
CloseClipboard
Next Img
Exit Sub
SaveWmf_Error:
MsgBox "Error " & Err.Number & vbLf & Err.Description, 48
End Sub

MP


"Francois L" news: %
Bonjour à tous,

Est-ce que quelqu'un saurait faire ça ?
Les classiques GIF, JPEG, etc. je sais mais j'aurais vraiment besoin
de créer des WMF !

Merci

--
François L











Publicité
Suivre les réponses
Poster une réponse
Anonyme