VBA Excel 2010 / 2016

Bonjour à tous,

Je vous explique mon problème car j'ai fais 10000 (au moins ) forum mais rien qui n'a répondu à ma question.

J'ai fais mon petit programme VBA (en péchant à droite à gauche) avec un Excel 2010. Dans ce programme, j'enregistre une partie de mon tableau limité par les cellules A1:M42 en image dans un dossier. Cela marche très bien avec tous les Excel de l'entreprise (qui sont en 2010) mais cela enregistre une page blanche en image quand l'on est en Excel 2016.

S'il vous plait, SAUVEZ MOI LA VIE

Ci-dessous le programme :

Sub DELAISDELIVRAISON()

Dim sh As Worksheet

Dim rng As Range

Dim chartobj As ChartObject

Dim output As String

Dim zoom_coef As Double

' référence sur la feuille qui contient la plage à exporter

Set sh = Worksheets("SEMAINE EN COURS")

' le fichier image

output = "F:\3 - BUREAU D'ETUDE\INFO DELAI PASSATION COMMANDES\ENREGISTREMENTS\DEFINITIFS\" & "S" & Worksheets("SEMAINE EN COURS").Range("K11") & " " & Worksheets("SEMAINE EN COURS").Range("R11") & ".jpg"

' el zoom

zoom_coef = 100 / sh.Parent.Windows(1).Zoom

Application.ScreenUpdating = Fals

' sélectionner la plage à exporter

Set rng = sh.Range("A1:M42").Cells

' copier dans le presse-papier

rng.CopyPicture xlPrinter

Set chartobj = sh.ChartObjects.Add(0, 0, rng.Width * zoom_coef, rng.Height * zoom_coef)

chartobj.Chart.Paste

' exporter l'image

chartobj.Chart.Export output, "JPG"

' supprimer

chartobj.Delete

Bonjour,

Dans Output, il y a déjà le type de fichier .JPG

À la ligne : chartobj.Chart.Export output

il faut enlever , "JPG"

Aussi, manque un e à Application.ScreenUpdating = False

ric

Bonjour,

Merci pour votre réponse, j'ai bien modifié les 2 mais cela ne marche toujours pas.

Pour information, si je fais du pas à pas, cela enregistre bien la bonne image. Mais si je fais "Lecture" ça fais image blanche. Ce qu'il y a de bizarre en plus, c'est que même si je limite ma cellule à une cellule coloré, l'image est quand même blanche.

J'ai trouvé sur un forum quelqu'un qui disait d'essayer de mettre une arrêt de temps de 2 secondes mais cela n'a pas marché.

Bonjour,

Il suffisait seulement d'activer l'objet avant de coller.

Sub DELAISDELIVRAISON()
Dim sh As Worksheet
Dim rng As Range
Dim chartobj As ChartObject
Dim output As String
Dim zoom_coef As Double

Application.ScreenUpdating = False

        ' référence sur la feuille qui contient la plage à exporter
Set sh = Worksheets("SEMAINE EN COURS")
        ' le fichier image
output = "F:\3 - BUREAU D'ETUDE\INFO DELAI PASSATION COMMANDES\ENREGISTREMENTS\DEFINITIFS\" _
        & "S" & sh.Range("K11") & " " & sh.Range("R11") & ".jpg"

zoom_coef = 100 / sh.Parent.Windows(1).Zoom   ' le zoom

Set rng = sh.Range("A1:M42").Cells  ' sélectionner la plage à exporter
rng.CopyPicture xlPrinter           ' copier dans le presse-papier

Set chartobj = sh.ChartObjects.Add(0, 0, rng.Width * zoom_coef, rng.Height * zoom_coef)
chartobj.Activate  ' <<<< ajout de cette ligne
chartobj.Chart.Paste
chartobj.Chart.Export output    ' exporter l'image
chartobj.Delete                 ' supprimer
End Sub

ric

Ric,

Je t'aurais en face je t'embrasserai !!!!!

Merci énormément !!!!!!

Au plaisir.

Rechercher des sujets similaires à "vba 2010 2016"