Communication Excel / Word en VBA

Résolu/Fermé
mijean94 Messages postés 413 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 12 septembre 2024 - 19 mars 2016 à 21:18
Le Pingou Messages postés 12207 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 30 novembre 2024 - 21 mars 2016 à 22:35
Bonjour,

J’ai réalisé avec plusieurs codes trouvés sur internet le petit programme qui est dans le fichier ci joint : http://www.cjoint.com/c/FCtugm4ZFJt

Ce que je n’arrive pas à mettre en place :

Dans mon code à la place du code qui suit, comment faire pour coller sur la feuille Word le dessin WordArt 1 à la place de la saisie inputBox ?


sauv_Word.Selection.TypeText Application.InputBox("Saisir le texte à écrire sur la feuille Word")


Merci de votre aide

J’ai aussi une deuxième interrogation que je n’ai pas encore explorée.
C’est comment créer un fichier .JPG à partir du Word créé puis sauvegarder le .JPG tous ça avec un code VBA qui viendra s'intégrer à celui existant.

Si vous avez des pistes merci d’avance

Cordialement
A voir également:

8 réponses

Le Pingou Messages postés 12207 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 30 novembre 2024 1 452
20 mars 2016 à 17:17
Bonjour,
Pouvez-vous expliquer pourquoi cette ligne de code :
Nb_pages = InputBox("Entrer le nombre de page sur le quel le dessin sera reproduit")

Vous parlez de nombre de page et dans la suite du code vous utiliser la valeur comme largeur de l’objet [Shape]

0
mijean94 Messages postés 413 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 12 septembre 2024 11
20 mars 2016 à 22:53
Bonjour,

Je réalise des créations de dessin sur livre par pliage pour mon plaisir. La ligne de code en question est utilisée pour convertir un nombre de page du livre en cm de rendu d’un dessin, afin de conserver une proportion au dessin par rapport à la hauteur de celui-ci.

ce que je cherche à faire :

a) créer un dessin sur Excel (WordArt) au bonnes dimensions par rapport à la hauteur de mon livre et au nombre de page que j'utilise
b) copier ce dessin sur une page Word (objet de ma 1ere question)
c) transformer cette page Word n JPG (Objet de ma deuxième interrogation, toujours à partir du code sous Excel)
d) récupérer le JPG, donc une image de mon dessin, pour la traiter avec une autre application sous Excel (cette séquence est presque résolue)

cordialement
0
Le Pingou Messages postés 12207 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 30 novembre 2024 1 452
20 mars 2016 à 23:23
Bonjour,
Vous dites : un dessin sur Excel (WordArt) en principe (WordArt) est une zone de texte stylisée mais pas un dessin… !
Il se fait tard, je regarderai demain pour arriver à comprendre et voir ce qui est faisable.

0
mijean94 Messages postés 413 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 12 septembre 2024 11
Modifié par mijean94 le 21/03/2016 à 09:34
Bonjour,

Vous dites : un dessin sur Excel (WordArt) en principe (WordArt) est une zone de texte stylisée mais pas un dessin… ! oui bien sur

Voici ce que je fais en manuel pour obtenir ce que je souhaite :

a) création du texte en Word Art sous Excel avec mise aux dimensions suivant mon besoin (h en cm *L en fonction du nb de page traduit ne cm).
b) je fait un copier et coller de ce texte sur Word en mode paysage centré sur la page
c) j'imprime la page Word avec Pdf Créator en pdf
d) j'ouvre le doc pdf et je le sauvegarde en jpg
e) après je récupère ce jpg (donc fichier image) que je traite en fonction de mon besoin (en automatique sous Excel, partie presque finalisée)

Je travail avec Excel 2003 et il n’est pas possible de sauvegarder une page en jpg directement, il me semble.
Sous Word je n’ai pas trouvé comment passer directement en jpg

donc je souhaiterai automatiser la section de a) à d)

Je suis à votre écoute pour tout complément d’information.

Merci par avance d’avoir consacré du temps à mon application

Bien cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12207 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 30 novembre 2024 1 452
21 mars 2016 à 14:23
Bonjour,
Dans un premier temps (imprévu ; de retour en fin de soirée) je vous ai mis le code pour copier la zone de texte de Excel sur le nouveau document Word.
Votre classeur : https://www.cjoint.com/c/FCvnw4u46KI

0
mijean94 Messages postés 413 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 12 septembre 2024 11
21 mars 2016 à 14:37
Bonjour,

Merci pour ce travail. je vais faire des essais.

Peut-être qu’il y a une solution sans passer par Word, mais je cherche comment sélectionner toutes les cellules sur les quelles le Word Art se trouve puis faire la sauvegarde en jpeg via PDF créator.

Il semble que la gestion de PDF créator n’est pas possible par VBA, donc le changement de nom et l’extension jpg doit être sélectionnée manuellement.


Cordialement
0
Le Pingou Messages postés 12207 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 30 novembre 2024 1 452
21 mars 2016 à 17:25
Bonjour,
J’ai un peu d’avance.
Cet essai insère l’objet Excel sur Word et le place au centre de la page.
Votre classeur : https://www.cjoint.com/c/FCvqxGmUgCI
Note pourquoi avez-vous besoin de convertir l’objet Shape en extension JPG ….

0
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 243
21 mars 2016 à 18:01
Bonjour,

des fois que ça intéresse : https://stackoverflow.com/questions/18232987/export-pictures-from-excel-file-into-jpg-using-vba
Après neutralisation de lignes dont certaines me donnaient un BSOD :
Sub test()
    For Each oShape In ActiveSheet.Shapes
        strImageName = ActiveSheet.Cells(oShape.TopLeftCell.Row, 1).Value
        oShape.Select
        'Picture format initialization
        'Selection.ShapeRange.PictureFormat.Contrast = 0.5: Selection.ShapeRange.PictureFormat.Brightness = 0.5: Selection.ShapeRange.PictureFormat.ColorType = msoPictureAutomatic: Selection.ShapeRange.PictureFormat.TransparentBackground = msoFalse: Selection.ShapeRange.Fill.Visible = msoFalse: Selection.ShapeRange.Line.Visible = msoFalse: Selection.ShapeRange.Rotation = 0#: Selection.ShapeRange.PictureFormat.CropLeft = 0#: Selection.ShapeRange.PictureFormat.CropRight = 0#: Selection.ShapeRange.PictureFormat.CropTop = 0#: Selection.ShapeRange.PictureFormat.CropBottom = 0#: Selection.ShapeRange.ScaleHeight 1#, msoTrue, msoScaleFromTopLeft: Selection.ShapeRange.ScaleWidth 1#, msoTrue, msoScaleFromTopLeft
        '/Picture format initialization
        Application.Selection.CopyPicture
        Set oDia = ActiveSheet.ChartObjects.Add(0, 0, oShape.Width, oShape.Height)
        Set oChartArea = oDia.Chart
        oDia.Activate
        With oChartArea
            .ChartArea.Select
            .Paste
            .Export ("D:\tmp\test.jpg")
        End With
        oDia.Delete    'oChartArea.Delete
    Next
End Sub

Testé sur un WordArt, j'ai bien eu le jpg
eric
0
Le Pingou Messages postés 12207 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 30 novembre 2024 1 452 > eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024
21 mars 2016 à 18:13
Bonjour eriiic,
Eh bien c’est avec grand plaisir que je vais essayer ta proposition.
Merci
Amicalement
Le Pingou
0
Le Pingou Messages postés 12207 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 30 novembre 2024 1 452
21 mars 2016 à 18:46
Bonjour eriiic,
C’est super pratique et en adaptant ton code toutes les [Shape] se retrouvent sur bureau.
Lignes adaptées :
  .Export ("C:\Users\PJP\Desktop\test_" & c & ".jpg") ' D:\tmp\test.jpg")
End With
c = c + 1

Amicalement
Le Pingou
0
mijean94 Messages postés 413 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 12 septembre 2024 11 > Le Pingou Messages postés 12207 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 30 novembre 2024
21 mars 2016 à 19:21
Bonjour,

Merci à tous les deux pour votre aide.

Effectivement ça marche nickel et ça répond à mon besoin.
Je vis essayer d'adapter pour pouvoir entrer le nom du fichier à sauvegarder et l'affaire sera OK

Un grand merci

Cordialement
0
Le Pingou Messages postés 12207 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 30 novembre 2024 1 452 > mijean94 Messages postés 413 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 12 septembre 2024
21 mars 2016 à 22:35
Merci,de rien.
Bonne suite.
Salutations.
Le Pingou
0
mijean94 Messages postés 413 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 12 septembre 2024 11
21 mars 2016 à 21:48
Re,

Encore merci pour votre aide rapide et efficace .

J’ai ajouter une ligne de code en début pour saisir le nom du fichier à sauvegarder, et modifié la ligne export.

nom_fichier = InputBox("Saisir le nom du fichier à sauvegarder")

For Each oShape In ActiveSheet.Shapes
strImageName = ActiveSheet.Cells(oShape.TopLeftCell.Row, 1).Value
oShape.Select
Application.Selection.CopyPicture
Set oDia = ActiveSheet.ChartObjects.Add(0, 0, oShape.Width, oShape.Height)
Set oChartArea = oDia.Chart
oDia.Activate
With oChartArea
.ChartArea.Select
.Paste
.Export ("C:\Users\Jean Mi\documents\" & nom_fichier & ".jpg")

End With
oDia.Delete 'oChartArea.Delete
Next

End Sub


Cordialement
0