Bonjour,
Je me permets de solliciter vos neurones pour un petit problème que je ne réussis pas à résoudre.
J'ai un petit document Word, appelé poétiquement ZonesDeTextes.docx où se trouvent 2 "Shapes". Ce sont deux rectangles vides (des "Shapes") au beau milieu de la feuille du document Word.

J'ai utilisé l'instruction oWord.ActiveDocument.Shape(1).TextFrame.TextRange.Text =" ", pour inscrire du texte dans ces 'shapes' directement à partir du code.

Ensuite, j'ai beau eu chercher, je n'ai pas trouvé le moyen de :
1) mettre le curseur sur une des 'Shapes', à partir de l'écriture du code. J'ai bien trouvé 'Focus' dans Mdsn, mais je ne sais pas comment l'utiliser.
2) passer de la Shape sous Focus à une autre, Shape(3), située dans un autre document Word, lorsque le nombre de caractères écrits dans la shape(1) est supérieur à celui voulu.
j'ai trouvé sur mdsn de microsoft une fonction Shape.KeyPress. Il s'agit vraisemblablement d'un évènement qui apparaît lors de la frappe d'une touche, quand la 'Shape' a le focus.

Il y a un exemple de Procédure, que j'ai largement arrangé, avec un compteur, et qui n'est probablement pas dénué d'erreurs :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim i As Integer
Dim imax As Integer = 20
While i < imax
RectangleShape_KeyPress(??????)
Wend
Else
oWord.ActiveDocument.Open(c/:...Document2.docx)
Shape(4).Focus
End
 
Private Sub RectangleShape_KeyPress(Byval sender As Object, Byval e As System.Forms.KeyPressEventArgs) Handles RectangleShape_KeyPress
Dim ch As Char
 
ch = e.KeyChar
oWord.ActiveDocument.Shapes(4).TextFrame.TextRange.Text = ch
i=i+1
End Sub
J'y ai donc trouvé le contrôle "RectangleShape".

D'une part, si jamais ça ne devait pas être trop à côté de la plaque, je ne sais pas trop quoi mettre à la place des ?????? dans
RectangleShape_KeyPress(??????)

D'autre part, avant même la question de l'argument à entrer dans la fonction RectangleShape_KeyPress(), j'ai tenté l'écriture du code précédent.

Il ne m'a pas fallu longtemps pour avoir une erreur :

Dans :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
RectangleShape_KeyPress(ByVal sender As Objet, ByVal e As System.Forms.KeyPressEventArgs) Handles RectangleShape.KeyPress
System.Forms.KeyPressEventArgs n'est pas reconnu 
ni RectangleShape (après Handles...)
J'ai tenté
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Imports Microsoft.VisualBasic.PowerPacks
car Shape.Keypress est dans l'espace de nom Microsoft.VisualBasic.PowerPacks mais l'éditeur ne le prend pas 'PowerPacks'...

En attente de vos suggestions,
Merci, Grég