Zone de texte sur image

Résolu
gregml Messages postés 89 Date d'inscription samedi 17 mai 2014 Statut Membre Dernière intervention 16 juin 2017 - 19 juin 2014 à 19:12
gregml Messages postés 89 Date d'inscription samedi 17 mai 2014 Statut Membre Dernière intervention 16 juin 2017 - 20 juin 2014 à 14:32
re-Bonjour,

Je sais que je suis très demandeur ces temps-ci et j'espère n'importuner personne par mes questions incessantes...

J'ai à nouveau un écueil à évoquer avec ceux qui veulent bien y prendre part. Il s'agit d'insérer du texte sur des images en vous demandant s'il est possible de leur attribuer un nom ou une valeur.

J'ai donné un exemple de ce qui serait attendu :

http://cjoint.com/?DFttiW4O7Rx

(avec le problème des cases qui seraient cochées selon la réponse dans le formulaire...)

Dans ce cas, qu'est-ce qui serait le mieux ?
Faire des différentes zones des zones de textes qui seraient commandées par des TextBox ?
Et comment faire pour que les cases (après première demande ou nombre de demandes et sous Acceptation et refus) soient cochées par une commande sur un formulaire ?

Merci,
Grég
A voir également:

11 réponses

jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
19 juin 2014 à 19:22
Pour ce qui est de ta question...

insérer du texte sur des images
Je ne vois pas dans ton exemple .. de texte Sur des images....

avec le problème des cases qui seraient cochées selon la réponse dans le formulaire..
Vu que tes cases s'excluent l'une /l'autre...ça ne s'appelle pas des cases à cocher mais des boutons radios ( ou option button) qu'ils faut mettre dans des Groupbox
http://www.extendoffice.com/documents/word/1289-word-insert-radio-button.html

De toutes façons.. avant de commencer à coder...il faut déjà que tu puisses savoir le faire "manuellement"...
Ainsi tu pourras mieux appréhender tes besoins et nous expliquer plus clairement sur quoi tu bloques;


1
gregml Messages postés 89 Date d'inscription samedi 17 mai 2014 Statut Membre Dernière intervention 16 juin 2017
19 juin 2014 à 20:41
Je ne vois pas dans ton exemple .. de texte Sur des images....
En fait dans l'exemple que j'ai posté :
dans le rectangle du haut, le petit tableau 2x2 et les inscriptions " N° de Dossier " et " N° de formulaire" sont inamovibles. C'est une partie de l'image.
En revanche, je voulais faire 2 zones disponibles pour moi que j'ai appelé ZONE 1 et ZONE 2.

De même, je ne peux pas modifier " EXPLIQUEZ VOTRE SITUATION FAMILIALE : " ainsi que les bordures, mais je veux avoir accès à la ZONE 5 en dessous...
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
19 juin 2014 à 23:34
Donc ce que tu nous dit c'est que le tout est une image et que tu veux y ecrire du texte dans les différentes zones ?

Donc comment ouvres tu le fichier pour le traiter ?
Tu le mets dans un document word dans lequel tu auras mis des signets ?
0
gregml Messages postés 89 Date d'inscription samedi 17 mai 2014 Statut Membre Dernière intervention 16 juin 2017
19 juin 2014 à 23:43
En fait, j'imaginais possible d'ancrer cette image (contenant les éléments "interdits" à l'utilisateur + les zones de texte accessibles à l'utilisateur, par le biais des formulaires) dans un document Word.

C'est ce que j'ai fait là : http://cjoint.com/?DFttiW4O7Rx,
où j'ai collé l'image en .png sur une feuille et j'ai ensuite inséré les différentes zones de texte que j'ai nommé ZONE 1, ..., ZONE 7.

J'ai évidemment fait ça grossièrement mais je peux ensuite fignoler les différentes zones de manière à ce qu'elles "collent" le plus au document contraint.

Je me suis totalement égaré ?
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
19 juin 2014 à 23:52
Ca n'a pas l'air mal.
Mais...
Et donc quel est ton souci ?
0
gregml Messages postés 89 Date d'inscription samedi 17 mai 2014 Statut Membre Dernière intervention 16 juin 2017
20 juin 2014 à 00:04
Et bien mon souci, c'est d'attribuer telle zone à tel contrôle dans un formulaire.
La zone 1 devra être "remplie" à partir de la réponse qu'aura donnée l'utilisateur dans un contrôle bien défini contenu dans un formulaire.
Idem pour la zone 2
La zone 3 est renseignée à partir d'un formulaire où deux contrôles Textbox demandent le nom puis le prénom.
Les autres zones sont des textbox, aux dimensions similaires à celles des zones de texte "collées" au document, qui vont se reporter dans les Zones 4, 5, 6 et 7.

Qu'en dis-tu ?
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
19 juin 2014 à 19:17
Je sais que je suis très demandeur ces temps-ci
Ca ce n'est pas gênant... nous on aime bien aider...

Par contre.... tu veux faire ça dans QUEL langage ?
VBA.. VB.net.... On ne sait pas vu que tu as encore mis ton message dans la section générique du site.... :-(
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
19 juin 2014 à 19:18
Et puis... peux tu reformuler... un peu plus en détail... ce que tu souhaites faire...
Car là...ben je ne comprend rien ...
0
gregml Messages postés 89 Date d'inscription samedi 17 mai 2014 Statut Membre Dernière intervention 16 juin 2017
19 juin 2014 à 20:34
Ok. Merci Jordane.
En fait, je souhaite programmer cela en VB.net (c'est par ce langage que j'ai commencé à me lancer) si c'était possible.

Je vais tenter d'expliquer davantage mon projet.

Le document présent à l'adresse : http://cjoint.com/?DFttiW4O7Rx

est censé représenter une image (les cadres, le drapeau, des phrases) où sont insérées des zones de texte. L'image est contrainte (je ne peux pas la modifier). En revanche je cherche à avoir la main sur les zones de texte.

Je cherche ainsi à fusionner une image et un texte (plus précisément des zones de texte).

Pourquoi est-ce que je cherche à faire cela ?
Parce que mon projet est de remplir des documents fournis par mon employeur (je ne peux pas toucher à la structure) mais je veux pouvoir remplir les zones de textes à partir de formulaires. Ainsi la zone 1 par exemple sera renseignée à partir d'un Textbox, la zone 2 d'une ComboBox, la dernière par une List...

J'espère être assez clair...
0

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

Posez votre question
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
20 juin 2014 à 02:21
Ok.. donc tu as mis des textbox directement dans ton document....
Le fait qu'il y ai une image en arrière plan...n'a aucune importance.
Ta question, pour résumé, est : Comment remplir des textbox (dans le document et non dans une Userform) en vb.net...

donc, si tu as bien mis des textbox...
tu peux les manipuler en faisant, par exemple :
 oWord.ActiveDocument.textbox1.text = " ceci est un test"





0
gregml Messages postés 89 Date d'inscription samedi 17 mai 2014 Statut Membre Dernière intervention 16 juin 2017
20 juin 2014 à 08:08
Salut,

Je lis ton message ce matin et me rends compte que là est peut-être le problème.
Ce que j'ai mis sur le document, ce sont des 'Zones de texte' qu'on obtient en faisant dans la barre d'outils de Word: Insertion > Zone de texte... et non des Textbox comme ceux proposés par VB.net sur un formulaire.
A moins qu'il y ait une possibilité de mettre un Textbox sur un document Word ?
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
20 juin 2014 à 10:08
Bonjour,

Là tu nous indique :
Ce que j'ai mis sur le document, ce sont des 'Zones de texte' qu'on obtient en faisant dans la barre d'outils de Word: Insertion > Zone de texte... et non des Textbox
Alors qu'avant tu nous as dit :
La zone 3 est renseignée à partir d'un formulaire où deux contrôles Textbox demandent le nom puis le prénom.
Les autres zones sont des textbox,

..... d'où l'importance de la clarté des informations données !!


A moins qu'il y ait une possibilité de mettre un Textbox sur un document Word
Ben oui... sinon...ben je n'en t'aurais pas parlé ^^
Mais pour ça...il faut connaitre le logiciel que tu essaies de "piloter".
Tu trouveras dans l'onglet "développeur" de Word des TextBox, des cases à cocher...etc...


Pour mettre des "zones de text" dans ton document Word il y plein de possibilité... Faire comme tu l'as fais..ou bien utiliser des textbox ou encore des richtextbox...etc....
Après... pour les "manipuler" par programmation.. je te dirais que le mieux c'est de regarder comment faire en VBA.
Après... il reste assez "facile" de transposer le code en VB.net.
0
gregml Messages postés 89 Date d'inscription samedi 17 mai 2014 Statut Membre Dernière intervention 16 juin 2017
20 juin 2014 à 10:47
Oui, merci de ta réponse. Je suis vraiment navré car effectivement, mon explication n'est pas très claire, parce que j'ai du mal à l'exprimer... et peut-être à la comprendre.
C'est dû au fait que je conceptualise mal la différence entre le formulaire qui va "poser" les questions à l'utilisateur et le document sur lequel vont se trouver les réponses de l'utilisateur ainsi qu'une partie del'insertion de texte.

Pour le reste, je vais m'atteler à la tâche...mais je ne vois pas comment insérer des Textbox ou des RichTextbox dans un document Word...
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
20 juin 2014 à 11:11
..mais je ne vois pas comment insérer des Textbox ou des RichTextbox dans un document Word...
Il faut que tu fasses apparaitre l'onglet développeur dans ton WORD.
0
gregml Messages postés 89 Date d'inscription samedi 17 mai 2014 Statut Membre Dernière intervention 16 juin 2017
20 juin 2014 à 11:24
ok, j'ai bien essayé mais le développeur refuse de positionner une zone de texte au-dessus d'une image.

Ce qui est possible sous Word (hors développeur) ne semble pas l'être sous développeur.

Je t'envoie ce message tout de suite mais vais tenter de le formuler un peu mieux, sous forme de schéma disponible sur cjoint.

Grég
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
20 juin 2014 à 11:29
Tu peux regarder cette page :
http://www.developpez.net/forums/d1324841/logiciels/microsoft-office/word/vba-word/vba-controle-contenu-texte-enrichi/

Donc : tu insères un contrôle de contenu : texte enrichi
Tu vas dans ses propriétés et tu lui affecte une valeur dans la case Balise


Puis tu utilises le code (présent dans le lien que je t'ai donné)
Sub test()
' Code VBA
Dim cc As ContentControl
    Dim docCCs As ContentControls
     Set docCCs = ActiveDocument.SelectContentControlsByTag("toto")
 
    If docCCs.Count <> 0 Then
        For Each cc In docCCs
            cc.Range.Text = " Le nouveau texte que je veux mettre !!!!! "
        Next
    Else
        MsgBox "La zone de texte n'a pas été trouvée !!"
    End If
End Sub



... Que tu transformes en VB.net bien entendu...



0
gregml Messages postés 89 Date d'inscription samedi 17 mai 2014 Statut Membre Dernière intervention 16 juin 2017
20 juin 2014 à 11:41
Le problème,c'est que je n'ai pas ces commandes dans mon développeur. Je t'ai fait une copie d'écran disponible là :http://cjoint.com/?DFulNxv4NDT

A chaque fois qu'il y a une solution de trouvée, un nouveau problème apparaît... c'est un peu décourageant!

Merci infiniment, Greg
0
gregml Messages postés 89 Date d'inscription samedi 17 mai 2014 Statut Membre Dernière intervention 16 juin 2017
20 juin 2014 à 11:48
Hop hop hop...
J'ai peut-être trouvé comment rajouter des formulaires.
Je cherche, Greg
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
20 juin 2014 à 11:52
...
Le problème,c'est que je n'ai pas ces commandes dans mon développeur

... tu es sous quelle version d'office ??

Par contre... le contrôle en question semble bien présent dans ta capture d'écran...
ne serait-ce pas le premier ?

A chaque fois qu'il y a une solution de trouvée, un nouveau problème apparaît... c'est un peu décourageant!

Tout n'est pas toujours comme on le souhaites...
Tout n'est pas disponible dès que l'on veut s'en servir...
Il faut parfois (et c'est valable dans beaucoup de choses de la vie) faire des étapes "supplémentaires" ou chercher un moyen pour contourner le souci ..pour arriver à nos fins.





Pour ce qui est de travailler avec les Zones de text (celles que tu as mis en place au début ) il est aussi possible de les manipuler :
-Ces zones de texte sont considérés comme des "Shapes".
- Attention.. plusieurs "text box" peuvent avoir le même nom.. il faut donc travailler avec leurs ID.

'Code VBA 
Sub test()

 'On liste toutes les zones de texte pour récupérer leur ID
For Each shp In ThisDocument.Shapes
    Debug.Print shp.Type
    Debug.Print shp.Name
    Debug.Print shp.ID
Next

'Exemple d'écriture dans la zone de text1
ThisDocument.Shapes(1).TextFrame.TextRange.Text = "nouveau text"

End Sub


A convertir en VB.net.



0
gregml Messages postés 89 Date d'inscription samedi 17 mai 2014 Statut Membre Dernière intervention 16 juin 2017
20 juin 2014 à 12:50
Sorry, c'était un peu con comme commentaire...
Et effectivement, on n'a pas tout, tout cuit. Mais pour éviter tout malentendu, ce n'est pas l'impatience mais plutôt la crainte que mon projet ne soit techniquement pas réalisable qui m'a fait écrire ce commentaire. En espérant ne pas t'avoir blessé, j'en suis encore désolé.

En fait, pour être tout à fait clair:
j'ai la version Microsoft Office 2011 sur mon Mac
j'ai la version Microsoft Office 2010 sur mon PC virtuel (par VirtualBox)

le contrôle en question semble bien présent dans ta capture d'écran...
ne serait-ce pas le premier ?

OK, j'ai réussi (dans le VirtualBox donc le PC) à trouver la fenêtre Propriétés attachée à la zone de Texte. Je vois comment c'est développable et te remercie.

J'essaie de comprendre en même temps ce que sont ces fameuses 'Shapes' parce qu'il me semble que ça correspond assez à ce qui est attendu.
Te remerciant, Grég
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
20 juin 2014 à 13:08
En espérant ne pas t'avoir blessé, j'en suis encore désolé.
Ca ne m'a pas blessé ne t'inquiète pas.
Et si je te répondu ainsi.. c'est surtout pour toi... car, certes, il arrive que ce que l'on veuille faire soit très (voir trop) compliqué.... mais il est toujours possible de trouver une autre solution.
Et si ce que l'on souhaite réaliser est (réellement) "impossible" ...alors on modifie l'objectif pour en trouver un réalisable.

Comme je le marque souvent ( oui je sais.... je radote ^^ ) :
La programmation c'est au moins 80% de réflexion....20% (seulement) d'écriture de code ...10% de debogage....
oui...110%.... car, quand on estime notre charge de travail...on oubli toujours de compter les bugs dans notre temps de dev.....
0
gregml Messages postés 89 Date d'inscription samedi 17 mai 2014 Statut Membre Dernière intervention 16 juin 2017
20 juin 2014 à 13:57
OK, heureux de voir que j'ai plutôt mal interprété ton commentaire. Je tente la question des 'Shapes'... mais ça a l'air chaud.
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
20 juin 2014 à 14:23
Tests le code directement en VBA dans ton document WORD.
Tu peux... au cas où, le lancer en mode pas à pas... ce qui te permettra de comprendre un peu plus comment il fonctionne...

Ensuite, la retranscription en VB.net n'est pas plus compliqué que ce que tu as codé jusqu'à maintenant;.


        Dim file As Object = "c:\tmp\doctest.docm"
        Dim oWord As New Word.Application

        oWord.Documents.Open(file)
        oWord.Visible = True

        Dim NouveauText As String = "ceci est un super test !!"
        Dim TextBoxID As Integer = 1

        'ecriture dans la première textbox
        oWord.ActiveDocument.Shapes(TextBoxID).TextFrame.TextRange.Text = NouveauText

        'écriture dans la secode:
        TextBoxID = 2
        oWord.ActiveDocument.Shapes(TextBoxID).TextFrame.TextRange.Text = " Texte sans passer par une variable !!"
0
gregml Messages postés 89 Date d'inscription samedi 17 mai 2014 Statut Membre Dernière intervention 16 juin 2017
20 juin 2014 à 14:26
J'ai une bonne et une mauvaise nouvelle.
Je commence par la bonne :

'Code VBA
Sub test()

 'On liste toutes les zones de texte pour récupérer leur ID
For Each shp In ThisDocument.Shapes
    Debug.Print shp.Type
    Debug.Print shp.Name
    Debug.Print shp.ID
Next

'Exemple d'écriture dans la zone de text1
ThisDocument.Shapes(1).TextFrame.TextRange.Text = "nouveau text"

End Sub


Cette application, convertie en VB.net fonctionne parfaitement.

J'ai disposé 4 zones de texte au hasard sur mon document, il m'a identifié les 4 zones et j'ai pu écrire à l'intérieur.
La mauvaise nouvelle, c'est que mon projet continue...

Merci, Grég
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
20 juin 2014 à 14:31
La mauvaise nouvelle, c'est que mon projet continue...
...ah ben non... c'est une bonne nouvelle aussi.....ça veut dire que tu vas encore avoir besoin de nous... :-p


Cette application, convertie en VB.net fonctionne parfaitement.
Pense à clôre le sujet dans ce cas.
0
Rejoignez-nous