Macro export htm avec image du classeur
loicoss
-
cs_Le Pivert Messages postés 8437 Statut Contributeur -
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour,
J'ai une macro pour exporter un fichier excel en .htm (avec report de valeurs de cellule)
Ce code fonctionne très bien.
Je souhaiterai intégrer dans ce code une image contenu dans l'onglet image qui d'après l'enregistreur de macro se nommerait : ActiveSheet.Shapes.Range(Array("Picture 1")).Select
voici donc mon code modifié pour intégrer cette image dans mon fichier htm :
Sub macro_html()
Open ThisWorkbook.Path & "\fichier_html.htm" For Output As #1
Print #1, Chr$(13) & "<html><body>"
Print #1, Chr$(13) & "<table>"
Print #1, Chr$(13) & "<tr>"
Print #1, Chr$(13) & "<td>"
Print #1, Chr$(13) & "<img src='" & Sheets("Image").Shapes.Range(Array("Picture 1")) & "' alt='IMAGE'/>"
Print #1, Chr$(13) & "</td>"
Print #1, Chr$(13) & "<td>"
Print #1, Chr$(13) & "</td>"
Print #1, Chr$(13) & "<td>"
Print #1, Chr$(13) & "" & Sheets("html").Range("B4") & " " & Sheets("html").Range("C4") & ""
Print #1, Chr$(13) & "</td>"
Print #1, Chr$(13) & "</tr>"
Print #1, Chr$(13) & "</table>"
Print #1, Chr$(13) & "</body></html>"
Close #1
ActiveWorkbook.FollowHyperlink Address:=ThisWorkbook.Path & "\fichier_html.htm", NewWindow:=True
End Sub
Le probème c'est qu'il me retourne une erreur sur la ligne <img src='" & Sheets("Image").Shapes.Range(Array("Picture 1")) & "' alt='IMAGE'/>
Je pense me tromper dans l’écriture de cette ligne.
Pourriez m'apporter une aide ?
Pour rappel sans cette ligne mon fichier est bien exporté avec les autres valeurs.
En vous remerciant par avance.
Bonne journée.
J'ai une macro pour exporter un fichier excel en .htm (avec report de valeurs de cellule)
Ce code fonctionne très bien.
Je souhaiterai intégrer dans ce code une image contenu dans l'onglet image qui d'après l'enregistreur de macro se nommerait : ActiveSheet.Shapes.Range(Array("Picture 1")).Select
voici donc mon code modifié pour intégrer cette image dans mon fichier htm :
Sub macro_html()
Open ThisWorkbook.Path & "\fichier_html.htm" For Output As #1
Print #1, Chr$(13) & "<html><body>"
Print #1, Chr$(13) & "<table>"
Print #1, Chr$(13) & "<tr>"
Print #1, Chr$(13) & "<td>"
Print #1, Chr$(13) & "<img src='" & Sheets("Image").Shapes.Range(Array("Picture 1")) & "' alt='IMAGE'/>"
Print #1, Chr$(13) & "</td>"
Print #1, Chr$(13) & "<td>"
Print #1, Chr$(13) & "</td>"
Print #1, Chr$(13) & "<td>"
Print #1, Chr$(13) & "" & Sheets("html").Range("B4") & " " & Sheets("html").Range("C4") & ""
Print #1, Chr$(13) & "</td>"
Print #1, Chr$(13) & "</tr>"
Print #1, Chr$(13) & "</table>"
Print #1, Chr$(13) & "</body></html>"
Close #1
ActiveWorkbook.FollowHyperlink Address:=ThisWorkbook.Path & "\fichier_html.htm", NewWindow:=True
End Sub
Le probème c'est qu'il me retourne une erreur sur la ligne <img src='" & Sheets("Image").Shapes.Range(Array("Picture 1")) & "' alt='IMAGE'/>
Je pense me tromper dans l’écriture de cette ligne.
Pourriez m'apporter une aide ?
Pour rappel sans cette ligne mon fichier est bien exporté avec les autres valeurs.
En vous remerciant par avance.
Bonne journée.
Configuration: Windows / Firefox 60.0
1 réponse
-
Bonjour,
Pour enregistrer une image en html:
'adapter l'emplacement de l'image A1:B6 With ActiveWorkbook.PublishObjects.Add(SourceType:=xlSourceRange, _ Filename:=ThisWorkbook.Path & "\fichier_html.htm", Sheet:="Image", Source:="$A$1:$B$6", _ HtmlType:=xlHtmlStatic, DivID:="Monimage") .Publish (True) .AutoRepublish = False End With
Voilà
-
-
Non, mais tu peux mettre le texte de tes cellules B4 C4 comme ceci:
'adapter l'emplacement de l'image A1:B6 texte en C1 et D1 a adapter Sheets("Image").Range("C1") = Sheets("html").Range("B4") Sheets("Image").Range("D1") = Sheets("html").Range("C4") With ActiveWorkbook.PublishObjects.Add(SourceType:=xlSourceRange, _ Filename:=ThisWorkbook.Path & "\fichier_html.htm", Sheet:="Image", Source:="$A$1:$D$6", _ HtmlType:=xlHtmlStatic, DivID:="Monimage") .Publish (True) .AutoRepublish = False End With
pour plus de détail voir ici:
https://docs.microsoft.com/fr-fr/office/vba/api/excel.publishobjects.add
@+
-