OVH Cloud OVH Cloud

Ecriture du contenu de la TextBox d'un UserForm

4 réponses
Avatar
jdel5
Bonjour,
J'essaie toujours de créer une macro qui permette de remplir une page Word
en écrivant à des endroits définis le contenu de TextBox apparaissant dans
un UserForm qui s'ouvre avec le fichier.
J'ai défini un signet que j'ai appelé tutu et j'arrive maintenant à mettre
le point d'insertion là où je veux avec
Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
mais je ne trouve pas de moyen pour écrire le contenu de la TextBox.
J'ai essayé :
Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
Selection.InsertAfter TextBox1.Value (ça plante ici, erreur 424, objet
requis)
Ou bien :
Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
'Selection = TextBox1.Text (pareil)
J'ai essayé également de déclarer en variable le contenu de ma TextBox
Dim Toto As String
Set Toto = TextBox1.Value (ça plante ici, erreur de compilation, objet
requis)
Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
Selection.TypeText Text:=Toto
J'ai essayé également de remplir la propriété ControlSource de la TextBox
avec le nom du signet mais ça ne marche pas (Dans Excel, il suffit de mettre
l'adresse de la cellule.)
Il faudrait que je comprenne comment il faut faire car ça m'a l'air un peu
différent d'Excel.
Nota, je travaille sur Word 97 avec Windows 98 ou NT4
Je nai rien trouvé sur le site http://faq.ms.word.free.fr/ relatif aux
UserForm
Merci de bien vouloir me donner encore un petit coup de pouce
Jean-Pierre

4 réponses

Avatar
Pascal Engelmajer
Salut,
Set toto= est incorrect car toto n'est pas un objet en VBA
toto= est correct
le message concerne donc toto...
si l'instruction
MsgBox TextBox1.Text
alrs c'est TextBox1 qui est inconnu il faut peut-être le qualifié par son
conteneur (un Userform par exemple Userform1.TextBox1 ... ou plus
certainement ThisDocument.TextBox1 ...)

Alors ceci ...
Selection.GoTo wdGoToBookmark, , , "tutu"
Selection.InsertAfter ThisDocument.TextBox1.Text

--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"jdel5" a écrit dans le message de news:
bv06lp$8f8$
Bonjour,
J'essaie toujours de créer une macro qui permette de remplir une page Word
en écrivant à des endroits définis le contenu de TextBox apparaissant dans
un UserForm qui s'ouvre avec le fichier.
J'ai défini un signet que j'ai appelé tutu et j'arrive maintenant à mettre
le point d'insertion là où je veux avec
Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
mais je ne trouve pas de moyen pour écrire le contenu de la TextBox.
J'ai essayé :
Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
Selection.InsertAfter TextBox1.Value (ça plante ici, erreur 424, objet
requis)
Ou bien :
Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
'Selection = TextBox1.Text (pareil)
J'ai essayé également de déclarer en variable le contenu de ma TextBox
Dim Toto As String
Set Toto = TextBox1.Value (ça plante ici, erreur de compilation, objet
requis)
Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
Selection.TypeText Text:=Toto
J'ai essayé également de remplir la propriété ControlSource de la TextBox
avec le nom du signet mais ça ne marche pas (Dans Excel, il suffit de
mettre

l'adresse de la cellule.)
Il faudrait que je comprenne comment il faut faire car ça m'a l'air un peu
différent d'Excel.
Nota, je travaille sur Word 97 avec Windows 98 ou NT4
Je nai rien trouvé sur le site http://faq.ms.word.free.fr/ relatif aux
UserForm
Merci de bien vouloir me donner encore un petit coup de pouce
Jean-Pierre





Avatar
Guy Moncomble
Bonjour à tous,
dans le message bv06lp$8f8$,

| Bonjour,
| J'essaie toujours de créer une macro qui permette de remplir une page
| Word en écrivant à des endroits définis le contenu de TextBox
| apparaissant dans un UserForm qui s'ouvre avec le fichier.
| J'ai défini un signet que j'ai appelé tutu et j'arrive maintenant à
| mettre le point d'insertion là où je veux avec
| Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
| mais je ne trouve pas de moyen pour écrire le contenu de la TextBox.
| J'ai essayé :
| Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
| Selection.InsertAfter TextBox1.Value (ça plante ici, erreur 424, objet
| requis)
| Ou bien :
| Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
| 'Selection = TextBox1.Text (pareil)
| J'ai essayé également de déclarer en variable le contenu de ma TextBox
| Dim Toto As String
| Set Toto = TextBox1.Value (ça plante ici, erreur de compilation, objet
| requis)
| Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
| Selection.TypeText Text:=Toto
| J'ai essayé également de remplir la propriété ControlSource de la
| TextBox avec le nom du signet mais ça ne marche pas (Dans Excel, il
| suffit de mettre l'adresse de la cellule.)
| Il faudrait que je comprenne comment il faut faire car ça m'a l'air
| un peu différent d'Excel.
| Nota, je travaille sur Word 97 avec Windows 98 ou NT4
| Je nai rien trouvé sur le site http://faq.ms.word.free.fr/ relatif aux
| UserForm
| Merci de bien vouloir me donner encore un petit coup de pouce
| Jean-Pierre

Ce sujet a déjà été abondamment traité ! Voici une procédure qui permet
de modifier le texte d'un signet, a priori où qu'il soit :

Public Sub MajSignet(NomSignet As String, TexteSignet As String)
'Guy Moncomble - Août 2003 ©
'Modifie le texte d'un signet et rétablit ce signet (supprimé par la
mise à jour).

'Fonctionne dans :
' - document principal, y compris les tableaux,
' - en-têtes et pieds de page,
' - cadres et zones de texte,
' - notes de bas de page et notes de fin.

Dim MyRange As Range, Debut As Long, TypAff As WdViewType, FenAff As
WdSeekView

'Si le signet existe
If ActiveDocument.Bookmarks.Exists(NomSignet) Then
'Où sommes nous au moment de l'appel ? quel est le type d'affichage
?
FenAff = ActiveDocument.ActiveWindow.View.SeekView
TypAff = ActiveDocument.ActiveWindow.View.Type
'Sélection du signet
ActiveDocument.Bookmarks(NomSignet).Select
'Où sommes-nous maintenant ?
If Selection.Information(wdInHeaderFooter) Then
'Il faut revenir en mode page, en-tête ou pied de page ouvert,
sinon marche pas
ActiveWindow.View.Type = wdPrintView
'On resélectionne
ActiveDocument.Bookmarks(NomSignet).Select
End If
Set MyRange = Selection.Range
Debut = MyRange.Start
Selection.Bookmarks(NomSignet).Range.Text = TexteSignet
MyRange.SetRange Debut, Debut + Len(TexteSignet)
Selection.Bookmarks.Add NomSignet, MyRange
'On rétablit la vue initiale
ActiveWindow.ActivePane.View.SeekView = FenAff
ActiveWindow.View.Type = TypAff
End If
End Sub
--
A+

G.M. MVP Word
Avatar
jdel5
Merci, c'est bon, ça marche
Jean-Pierre
"Pascal Engelmajer" a écrit dans le
message news: #
Salut,
Set toto= est incorrect car toto n'est pas un objet en VBA
toto= est correct
le message concerne donc toto...
si l'instruction
MsgBox TextBox1.Text
alrs c'est TextBox1 qui est inconnu il faut peut-être le qualifié par son
conteneur (un Userform par exemple Userform1.TextBox1 ... ou plus
certainement ThisDocument.TextBox1 ...)

Alors ceci ...
Selection.GoTo wdGoToBookmark, , , "tutu"
Selection.InsertAfter ThisDocument.TextBox1.Text

--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"jdel5" a écrit dans le message de news:
bv06lp$8f8$
Bonjour,
J'essaie toujours de créer une macro qui permette de remplir une page
Word


en écrivant à des endroits définis le contenu de TextBox apparaissant
dans


un UserForm qui s'ouvre avec le fichier.
J'ai défini un signet que j'ai appelé tutu et j'arrive maintenant à
mettre


le point d'insertion là où je veux avec
Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
mais je ne trouve pas de moyen pour écrire le contenu de la TextBox.
J'ai essayé :
Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
Selection.InsertAfter TextBox1.Value (ça plante ici, erreur 424, objet
requis)
Ou bien :
Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
'Selection = TextBox1.Text (pareil)
J'ai essayé également de déclarer en variable le contenu de ma TextBox
Dim Toto As String
Set Toto = TextBox1.Value (ça plante ici, erreur de compilation, objet
requis)
Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
Selection.TypeText Text:=Toto
J'ai essayé également de remplir la propriété ControlSource de la
TextBox


avec le nom du signet mais ça ne marche pas (Dans Excel, il suffit de
mettre

l'adresse de la cellule.)
Il faudrait que je comprenne comment il faut faire car ça m'a l'air un
peu


différent d'Excel.
Nota, je travaille sur Word 97 avec Windows 98 ou NT4
Je nai rien trouvé sur le site http://faq.ms.word.free.fr/ relatif aux
UserForm
Merci de bien vouloir me donner encore un petit coup de pouce
Jean-Pierre









Avatar
jdel5
Merci Guy
"Guy Moncomble" <http://cerbermail.com/?QOoOlzu81P> a écrit dans le message
news:
Bonjour à tous,
dans le message bv06lp$8f8$,

| Bonjour,
| J'essaie toujours de créer une macro qui permette de remplir une page
| Word en écrivant à des endroits définis le contenu de TextBox
| apparaissant dans un UserForm qui s'ouvre avec le fichier.
| J'ai défini un signet que j'ai appelé tutu et j'arrive maintenant à
| mettre le point d'insertion là où je veux avec
| Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
| mais je ne trouve pas de moyen pour écrire le contenu de la TextBox.
| J'ai essayé :
| Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
| Selection.InsertAfter TextBox1.Value (ça plante ici, erreur 424, objet
| requis)
| Ou bien :
| Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
| 'Selection = TextBox1.Text (pareil)
| J'ai essayé également de déclarer en variable le contenu de ma TextBox
| Dim Toto As String
| Set Toto = TextBox1.Value (ça plante ici, erreur de compilation, objet
| requis)
| Selection.GoTo What:=wdGoToBookmark, Name:="Tutu"
| Selection.TypeText Text:=Toto
| J'ai essayé également de remplir la propriété ControlSource de la
| TextBox avec le nom du signet mais ça ne marche pas (Dans Excel, il
| suffit de mettre l'adresse de la cellule.)
| Il faudrait que je comprenne comment il faut faire car ça m'a l'air
| un peu différent d'Excel.
| Nota, je travaille sur Word 97 avec Windows 98 ou NT4
| Je nai rien trouvé sur le site http://faq.ms.word.free.fr/ relatif aux
| UserForm
| Merci de bien vouloir me donner encore un petit coup de pouce
| Jean-Pierre

Ce sujet a déjà été abondamment traité ! Voici une procédure qui permet
de modifier le texte d'un signet, a priori où qu'il soit :

Public Sub MajSignet(NomSignet As String, TexteSignet As String)
'Guy Moncomble - Août 2003 ©
'Modifie le texte d'un signet et rétablit ce signet (supprimé par la
mise à jour).

'Fonctionne dans :
' - document principal, y compris les tableaux,
' - en-têtes et pieds de page,
' - cadres et zones de texte,
' - notes de bas de page et notes de fin.

Dim MyRange As Range, Debut As Long, TypAff As WdViewType, FenAff As
WdSeekView

'Si le signet existe
If ActiveDocument.Bookmarks.Exists(NomSignet) Then
'Où sommes nous au moment de l'appel ? quel est le type d'affichage
?
FenAff = ActiveDocument.ActiveWindow.View.SeekView
TypAff = ActiveDocument.ActiveWindow.View.Type
'Sélection du signet
ActiveDocument.Bookmarks(NomSignet).Select
'Où sommes-nous maintenant ?
If Selection.Information(wdInHeaderFooter) Then
'Il faut revenir en mode page, en-tête ou pied de page ouvert,
sinon marche pas
ActiveWindow.View.Type = wdPrintView
'On resélectionne
ActiveDocument.Bookmarks(NomSignet).Select
End If
Set MyRange = Selection.Range
Debut = MyRange.Start
Selection.Bookmarks(NomSignet).Range.Text = TexteSignet
MyRange.SetRange Debut, Debut + Len(TexteSignet)
Selection.Bookmarks.Add NomSignet, MyRange
'On rétablit la vue initiale
ActiveWindow.ActivePane.View.SeekView = FenAff
ActiveWindow.View.Type = TypAff
End If
End Sub
--
A+

G.M. MVP Word