Communication Excel / Word en VBA [Résolu/Fermé]
Signaler
mijean94
Le Pingou
- Messages postés
- 341
- Date d'inscription
- mercredi 16 décembre 2015
- Statut
- Membre
- Dernière intervention
- 7 novembre 2019
Le Pingou
- Messages postés
- 9824
- Date d'inscription
- mercredi 11 août 2004
- Statut
- Contributeur
- Dernière intervention
- 18 janvier 2021
A voir également:
- Communication Excel / Word en VBA
- Communication Excel / Word en VBA ✓ - Forum - Excel
- [Macro][VBA][Excel][Word] Dernier Document Word ouvert ✓ - Forum - VB / VBA
- [VBA] Lien Excel-Word + ✓ - Forum - Excel
- Vba: Excel >Word , Probleme de decimales ✓ - Forum - VB / VBA
- [VBA/SQL] communication Excel<-->Access ✓ - Forum - VB / VBA
8 réponses
Le Pingou
- Messages postés
- 9824
- Date d'inscription
- mercredi 11 août 2004
- Statut
- Contributeur
- Dernière intervention
- 18 janvier 2021
Bonjour,
Pouvez-vous expliquer pourquoi cette ligne de code :
Vous parlez de nombre de page et dans la suite du code vous utiliser la valeur comme largeur de l’objet [Shape]
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]
mijean94
- Messages postés
- 341
- Date d'inscription
- mercredi 16 décembre 2015
- Statut
- Membre
- Dernière intervention
- 7 novembre 2019
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
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
Le Pingou
- Messages postés
- 9824
- Date d'inscription
- mercredi 11 août 2004
- Statut
- Contributeur
- Dernière intervention
- 18 janvier 2021
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.
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.
mijean94
- Messages postés
- 341
- Date d'inscription
- mercredi 16 décembre 2015
- Statut
- Membre
- Dernière intervention
- 7 novembre 2019
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
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
Le Pingou
- Messages postés
- 9824
- Date d'inscription
- mercredi 11 août 2004
- Statut
- Contributeur
- Dernière intervention
- 18 janvier 2021
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
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
mijean94
- Messages postés
- 341
- Date d'inscription
- mercredi 16 décembre 2015
- Statut
- Membre
- Dernière intervention
- 7 novembre 2019
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
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
Le Pingou
- Messages postés
- 9824
- Date d'inscription
- mercredi 11 août 2004
- Statut
- Contributeur
- Dernière intervention
- 18 janvier 2021
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 ….
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 ….
eriiic
- Messages postés
- 23808
- Date d'inscription
- mardi 11 septembre 2007
- Statut
- Contributeur
- Dernière intervention
- 19 janvier 2021
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 :
Testé sur un WordArt, j'ai bien eu le jpg
eric
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
Le Pingou
- Messages postés
- 9824
- Date d'inscription
- mercredi 11 août 2004
- Statut
- Contributeur
- Dernière intervention
- 18 janvier 2021
- Messages postés
- 23808
- Date d'inscription
- mardi 11 septembre 2007
- Statut
- Contributeur
- Dernière intervention
- 19 janvier 2021
Bonjour eriiic,
Eh bien c’est avec grand plaisir que je vais essayer ta proposition.
Merci
Amicalement
Le Pingou
Eh bien c’est avec grand plaisir que je vais essayer ta proposition.
Merci
Amicalement
Le Pingou
Le Pingou
- Messages postés
- 9824
- Date d'inscription
- mercredi 11 août 2004
- Statut
- Contributeur
- Dernière intervention
- 18 janvier 2021
Bonjour eriiic,
C’est super pratique et en adaptant ton code toutes les [Shape] se retrouvent sur bureau.
Lignes adaptées :
Amicalement
Le Pingou
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
mijean94
- Messages postés
- 341
- Date d'inscription
- mercredi 16 décembre 2015
- Statut
- Membre
- Dernière intervention
- 7 novembre 2019
- Messages postés
- 9824
- Date d'inscription
- mercredi 11 août 2004
- Statut
- Contributeur
- Dernière intervention
- 18 janvier 2021
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
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
Le Pingou
- Messages postés
- 9824
- Date d'inscription
- mercredi 11 août 2004
- Statut
- Contributeur
- Dernière intervention
- 18 janvier 2021
- Messages postés
- 341
- Date d'inscription
- mercredi 16 décembre 2015
- Statut
- Membre
- Dernière intervention
- 7 novembre 2019
Merci,de rien.
Bonne suite.
Salutations.
Le Pingou
Bonne suite.
Salutations.
Le Pingou
mijean94
- Messages postés
- 341
- Date d'inscription
- mercredi 16 décembre 2015
- Statut
- Membre
- Dernière intervention
- 7 novembre 2019
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.
Cordialement
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