Exporter le contenu d'une cellule Excel en image JPEG

Bonjour,

Je cherche une solution pour exporter en image JPEG le contenu d'une cellule excel dans laquelle je met en forme un code barre 128 C à partir d'un nombre à 12 chiffres.

Merci d'avance pour votre aide

Bonjour Dom38, le forum,

Voici une macro qui te montrera la démarche.

Vérifier et régler les hauteur et largeur du graphique temporaire créé.

Tu as interêt à centrer Verticalement et horizontalement le contenu de la cellules.

Sub CelluleToJpeg()

    With Feuil1
        'Copie la cellule en tant qu'image
        .Range("A1").CopyPicture

        'Créer un graphique temporaire
        With .ChartObjects.Add(Cells(1, 1).Left, Cells(1, 1).Top, Cells(1, 1).Width + 8, Cells(1, 1).Height + 8).Chart
            'Y passe l'image
            .Paste
            'Exportation dans le répertoire du fichier xl
            .Export ThisWorkbook.Path & "\monImage.jpg", "JPG"
        End With

        'Supprimer le graphique temporaire
        .ChartObjects(Feuil1.ChartObjects.Count).Delete

    End With

End Sub

A bientôt

Bonjour,

Si tu disposes d'une version 2003 ou ultérieure, je te conseille l'appareil photo, puis coller dans PowerPoint et clic droit - enregistrer en tant qu'image.

Cordialement,

Bonjour,

Même solution que celle proposée par VElbie mais en la collant dans un logiciel photo genre IRFANVIEW plutôt que directement dans POWERPOINT pour éviter les pb de résolution si la photo devait être utilisée ailleurs.

Attention également que coller un photo en direct dans Powerpoint peut augmenter le poids du fichier Powerpoint de manière considérable. Le mieux est d'utiliser INSERTION / IMAGE ou INSERTION / OBJET.

Amicalement

Dan

hasco a écrit :

Bonjour Dom38, le forum,

Voici une macro qui te montrera la démarche.

Vérifier et régler les hauteur et largeur du graphique temporaire créé.

Tu as interêt à centrer Verticalement et horizontalement le contenu de la cellules.

Sub CelluleToJpeg()

    With Feuil1
        'Copie la cellule en tant qu'image
        .Range("A1").CopyPicture

        'Créer un graphique temporaire
        With .ChartObjects.Add(Cells(1, 1).Left, Cells(1, 1).Top, Cells(1, 1).Width + 8, Cells(1, 1).Height + 8).Chart
            'Y passe l'image
            .Paste
            'Exportation dans le répertoire du fichier xl
            .Export ThisWorkbook.Path & "\monImage.jpg", "JPG"
        End With

        'Supprimer le graphique temporaire
        .ChartObjects(Feuil1.ChartObjects.Count).Delete

    End With

End Sub

A bientôt

Bonjour hasco,

Merci tout d'abord pour ton aide. Ta solution me semble la plus adaptée pour ce que je veux faire. En effet j'ai quelques centaines de codes barre en image JPEG à générer. Dans mon fichier excel sur la feuille 1 que j'ai renommé en "base de données", j'ai tous les chiffres dont je dois générer mes codes barre. Je vais les lire 1 par 1 à l'aide d'une boucle. La feuille 2 que j'ai renommé "code barre" me sert à mettre en forme le code barre dans la cellule A1 à l'aide de la police BCW_Code128C_1.

Voici ton code que j'ai tapé.

Sub Code_barre_jpeg()

With Feuil2

'copie la cellule en tant qu'image

Range("A1").CopyPicture

' Créer un graphique temporaire

With .ChartObjects.Add(Cells(1, 1).Top, Cells(1, 1).Width + 8, Cells(1, 1).Height + 8).Chart

.Paste

.Export ThisWorkbook.Path & "\monimage.jpg", "JPG"

End With

End With

End Sub

Mais quand j'arrive à la ligne :

With .ChartObjects.Add(Cells(1, 1).Top, Cells(1, 1).Width + 8, Cells(1, 1).Height + 8).Chart

J'ai le message

"Erreur d'execution "449"

Argument non facultatif.

Peux-tu m'aider de nouveau STP.

Peux-tu également me détailler la syntaxe de cette phrase:

With .ChartObjects.Add(Cells(1, 1).Top, Cells(1, 1).Width + 8, Cells(1, 1).Height + 8).Chart

pour que je puisse comprendre ce qu'elle fait.

En te remerciant par avance pour ton aide précieuse.

A bientôt.

Dom38

Bonjour Dom,

Voici un type de boucle que tu peux éventuellement adapter:

Sub CelluleToJpeg()
    Dim i As Integer
    Dim oChart As Chart

    With Feuil1
        'Créer un graphique temporaire

        For i = 1 To 4
            'Copie la cellule en tant qu'image
            .Range("A" & i).CopyPicture
            With .ChartObjects.Add(Cells(i, 1).Left, Cells(i, 1).Top, Cells(i, 1).Width + 8, Cells(i, 1).Height + 8).Chart
                'Y passe l'image
                .Paste
                'Exportation dans le répertoire du fichier xl
                .Export ThisWorkbook.Path & "\monImage_" & i & ".jpg", "JPG"
            End With
        'Supprimer le graphique temporaire
        .ChartObjects(Feuil1.ChartObjects.Count).Delete
        Next
    End With

End Sub

Tu as oublié un argument.

Extrait de l'aide en ligne sur la méthode Add de ChartObjects

Il n'y a que 4 arguments.(Excel 2002):

'.ChartObjects.Add(Left, Top, Width, Height)

'Left, Top Argument de type Double obligatoire. Coordonnées initiales du nouvel objet (en points), par rapport au coin supérieur gauche de la cellule A1 d'une feuille de calcul ou du coin supérieur gauche d'un graphique.

'Width, Height Argument de type Double obligatoire. Taille initiale du nouvel objet, en points.

Je ne sais pas ce que tu comptes en faire ensuite mais cela risque d'être long sur plusieurs centaines d'images.

Ne serait-il pas préférable de les imprimer dans un fichier pdf au moyen d'une imprimante virtuelle pdf style PdfCreator après avoir défini ta zone d'impression?

Ou de les imprimer sur des étiquettes?

A+

A+

Rechercher des sujets similaires à "exporter contenu image jpeg"