[Catégorie modifiée .Net -> VBA] fixer définitivement un objet image dans un wor

Signaler
Messages postés
6
Date d'inscription
mercredi 25 août 2010
Statut
Membre
Dernière intervention
22 avril 2011
-
Messages postés
6
Date d'inscription
mercredi 25 août 2010
Statut
Membre
Dernière intervention
22 avril 2011
-
Bonjour tout le monde

petite question que caracole dans ma tete et qui ne trouve pas solution sur vBfrance et google.

Je travail sur un document word à partir d'un userform. Je souhaite insérer une image (cadre image déjà inséré dans le word).
J'ai donc un textbox avec le chemin qui va chercher l'image .. tout va bien..
L'image s’insère, pas de problème. Mais lorsque je supprime toute les macros pour avoir un texte brut, mes images disparaissent.

J'aurais souhaiter fixer définitivement les images avant de supprimer les macros

code:


'insertion du plan général
plangeneral = tbx102.Text 'sans accent, c'est le chemin
Dim plangénéral As Image 'avec accent, c'est l'objet image dans le word
Set plangénéral = ThisDocument.plangeneral
plangénéral.Picture = LoadPicture(plangeneral)

Merci à tous

9 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut

"lorsque je supprime toute les macros pour avoir un texte brut, mes images disparaissent"
Pas compris ce que tu veux dire

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
PS : Utiliser des accents dans les noms d'objet ou de variable = pas top, mais appeler 2 objets/variable presque pareil, aux accents, c'est risqué
Messages postés
6
Date d'inscription
mercredi 25 août 2010
Statut
Membre
Dernière intervention
22 avril 2011

Alors, pour détaillé mon truc.
j'ai un userform, avec tout un tas de checksbox, textbox,... qui viennent s'inserer dans les signet du word.

Lorsque j'ai tout validé (checksboxs cochées, textbox remplis, chemins des images,....), j'ai un bouton qui génère tout mon word. A la fin du transfert des données du userform au word j'ai une boite de dialog qui s'ouvre pour enregistrer le fichier dans un dossier spécifique(manoeuvre pour éviter d'écraser le fichier initial et vierge dans lequel j'ai toute les macros). Une fois le nouveau fichier enregistrer, n'ayant plus besoin d'aucune macros, je supprime tout les codes et userforms sur mon nouveau document. Ainsi lorsque je l'ouvre, j'ai plus que le texte sans aucune trace de VBA.

Sinon pour les accents, je sais, c'est pas terrible mais pour un tout petit code comme ca, je ne voulais pas les nommer dans tout les sens (surtout que j'en ai 4 autres similaires)

merci

jules
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Ok.
Pour que ton nouveau document ne contienne pas les macros, il te suffit de créer un nouveau document au lieu d'utiliser le document courant.
Dim monDoc As Document
Set monDoc = New Document
et ensuite, tu t'adresses à monDoc au lieu du doc courant.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Prends l'ahbitude de nommer tes variables ou objet avec une abréviation en tête du nom, qui rappellera tout de suite sa nature.
Les grands classiques :
Integer iMaVar
Long lMaVar
Image imgMonImage

tu peux inventer la norme qui te plait, du moment que ça représente sans ambigüité le type de var (facilite le débogage et la progammation)
Messages postés
6
Date d'inscription
mercredi 25 août 2010
Statut
Membre
Dernière intervention
22 avril 2011

ok pour les variables à l'avenir

En fait, je 'nai peut être pas été assez précis. le word ne se génère pas tout seul tout seul, il est prérédigé et remplis de signet. Je ne peux de fait pas ouvrir un nouveau word.

Ma question était par rapport à l'image, le reste marche impec' même si, comme tu le soulève, ce n'est pas très académique.

merci

cordialement

PS: il me reste plus que ça pour finaliser l'appli. J'ai passé 200 heures dessus, alors tu comprend que je ne veux plus y toucher.....
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Bah si : tu transforme ton document bourré de signets (...) en template (DOT) et tu crées un nouveau document à partir de ce template.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Pour en revenir à ton image, je ne comprends pas où / sur quoi se trouve Image1 qui pose problème. Il semble que tu le crées à la volée mais où atterrit-il ?

On ne sait pas non plus ce qu'est ta variable plangeneral sans accent (un String ?).
Si c'est le cas, je ne comprends pas trop le
Set plangénéral = ThisDocument.plangeneral
Comment une Image pourrait-être une chaine.

Fais l'essai suivant :
Prends ton fichier vierge et regarde sa taille précise en octets.
Lance ta macro et remplis ton image et regarde à nouveau la taille.
Compare la différence avant-après avec la taille de l'image.
Si le fichier a grossi d'un peu plus que le poids de l'image, c'est qu'elle est incluse dans le Doc. Sinon, c'est que le Doc n'a enregistré que le lien de l'image ou un truc comme ça.
Messages postés
6
Date d'inscription
mercredi 25 août 2010
Statut
Membre
Dernière intervention
22 avril 2011

Putin de bordel de merde.... c'est exactement ca....
le doc n'a enregistrer que le liens ... et du coup, limage n’apparaît plus lorsque j'efface les macros.....

How could i do ??