|
 Posté le 11/06/2015 @ 11:19 |
Petit astucien
| Bonjour
je cherche un code pour exporter une plage de cellule vers une image JPG ou autre vers mes images pour cela j'utilise pour la sélection le code suivant
Sub EnvoiPlage() Dim plage As Range
On Error Resume Next Set plage = Application.InputBox("Sélectionnez la plage à envoyer", Type:=8) If Err.Number <> 0 Then Err.Clear MsgBox "Aucune plage sélectionnée" Exit Sub End If
End Sub
|
|
|
|
|
|
Posté le 11/06/2015 à 14:14 |
Astucien | Bonjour,
Sub EnvoiPlage() Dim plage As Range On Error GoTo noselec Set plage = Application.InputBox("Sélectionnez la plage à envoyer", Type:=8) plage.CopyPicture Application.ScreenUpdating = False With Worksheets.Add .Paste With .ChartObjects.Add(0, 0, Selection.Width, Selection.Height).Chart .Paste .Export "H:\Images\ImgPlage.png", "PNG" End With Application.DisplayAlerts = False .Delete Application.DisplayAlerts = True End With Application.ScreenUpdating = True Exit Sub noselec: MsgBox "Aucune plage sélectionnée" End Sub
En rouge : remplacer par chemin du fichier image et nom du fichier image (on peut aussi enregistrer en GIF ou JPG)

|
|
Posté le 11/06/2015 à 15:20 |
Petit astucien
| Merci
fonctionne à merveille
|
|
Posté le 11/06/2015 à 15:46 |
Petit astucien
| Re
Et pour enregistrer au format html |
|
Posté le 13/06/2015 à 09:20 |
Petit astucien
| Bonjour
Comment que je peut faire pour ajouter le code printaeramod
à la place de Set plage = Application.InputBox("Sélectionnez la plage à envoyer", Type:=8)
Sub printAreaMod() Dim derLig As Integer derLig = Cells(65000, 2).End(xlUp).Row ActiveSheet.PageSetup.PrintArea = "a1:d" & derLig ActiveSheet.AutoFilter.ApplyFilter End Sub |
|
Posté le 13/06/2015 à 11:37 |
Astucien |
massjipe a écrit :
Et pour enregistrer au format html
HTML n'est pas un format image !

|
|
Posté le 13/06/2015 à 11:49 |
Astucien |
massjipe a écrit :
Bonjour
Comment que je peut faire pour ajouter le code printaeramod
à la place de Set plage = Application.InputBox("Sélectionnez la plage à envoyer", Type:=8)
Sub printAreaMod() Dim derLig As Integer derLig = Cells(65000, 2).End(xlUp).Row ActiveSheet.PageSetup.PrintArea = "a1:d" & derLig ActiveSheet.AutoFilter.ApplyFilter End Sub
derLig = Cells(Rows.Count, 2).End(xlUp).Row Set plage = Range("A1:D" & derLig)
Mais que viennent faire la zone d'impression et le filtre automatique là-dedans ?

|
|
Posté le 13/06/2015 à 18:29 |
Petit astucien
| Bonjour
le filtre automatique est réglé sur cellule vide quand la feuille 1 est modifié le filtre met à jour la feuil2
la zone d'impression sert à sélectionner les cellules écrites pour ensuite créer la photo pour ma page web
Sub EnvoiPlage() Dim plage As Range On Error GoTo noselec ActiveSheet.AutoFilter.ApplyFilter derLig = Cells(Rows.Count, 2).End(xlUp).Row Set plage = Range("A1:D" & derLig) plage.CopyPicture Application.ScreenUpdating = False With Worksheets.Add .Paste With .ChartObjects.Add(0, 0, Selection.Width, Selection.Height).Chart .Paste .Export "C:\Users\JP_Masson\Pictures\anaq.jpg", "JPG" End With Application.DisplayAlerts = False .Delete Application.DisplayAlerts = True End With Application.ScreenUpdating = True Exit Sub noselec: MsgBox "Aucune plage sélectionnée" ActiveWorkbook.Save End Sub Merci du coup de main
Un bon WE |
|
Posté le 13/06/2015 à 19:25 |
Astucien | Difficile voir l'effet du filtre sans modèle... ?
La zone d'impression n'a rien à faire dans cette opération (ça c'est confirmé !)
La nouvelle version rend inutile le gestionnaire d'erreur.
Si tu t'y es retrouvé, tant mieux !   |
|