Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Copie de champs texte

2 réponses
Avatar
jepac
Bonsoir,

Soit deux champs texte Nom1 et Nom2.

Je souhaiterais construire une macro qui s'exécuterai à la sortie du champ
Nom1 et copierai la saisie du champ Nom1 dans le champ Nom2.

Et bien sûr une macro qui copierai la saisie du champ Nom2 vers le champ Nom1

Ceci afin que l'utilisateur puisse saisir à plusieurs endroits dans le
document des données qui doivent se répéter dans plusieurs sections du
document

Merci
Jean-Paul

2 réponses

Avatar
Anacoluthe
Bonjour !

'jepac' nous a écrit ...
Soit deux champs texte Nom1 et Nom2.
Je souhaiterais construire une macro qui s'exécuterai à la sortie du champ
Nom1 et copierai la saisie du champ Nom1 dans le champ Nom2.
Et bien sûr une macro qui copierai la saisie du champ Nom2 vers le champ Nom1
Ceci afin que l'utilisateur puisse saisir à plusieurs endroits dans le
document des données qui doivent se répéter dans plusieurs sections du
document


Le mieux est de concevoir UNE seule macro pour tous les champs Nom*
dont l'exécution serait activée en sortie de chacun. Vous pouvez
avoir Nom1 Nom2 Nom3 etc comme signets de ces champs de formulaire.

Supposons pour simplifier que tous les champs Nom* soient
en tête de paragraphe :

Public Sub TousNomsPareils()
Dim Nom As String
Dim FF As FormField
Nom = Selection.Paragraphs(1).Range.FormFields(1).Result
For Each FF In ActiveDocument.FormFields
If Left(FF.Name, 3) = "Nom" Then FF.Result = Nom
Next FF
End Sub

Anacoluthe
« C'est un ami dont je ne connais pas le nom,
et je le connais depuis trop longtemps pour lui demander. »
- Georges FEYDEAU

Avatar
jepac
Merci pour ta réponse.

Mon document est constitué de 3 sections et les champs "Nom" se trouvent au
même endroit dans chacune des sections, mais pas a début.

Comment sont numérotés les champs ? de gauche à droite ? du haut vers le bas ?

si par exemple le champ "Nom" est le 10ème champ de la section puis-je
écrire ceci :

Nom = Selection.sections(1).Range.FormFields(10).Result

mais pour la suite de la macro...je cale.

Si c'est plus simple d'écrire 3 macros je suis preneur

Merci
Jean-Paul




Bonjour !

'jepac' nous a écrit ...
Soit deux champs texte Nom1 et Nom2.
Je souhaiterais construire une macro qui s'exécuterai à la sortie du champ
Nom1 et copierai la saisie du champ Nom1 dans le champ Nom2.
Et bien sûr une macro qui copierai la saisie du champ Nom2 vers le champ Nom1
Ceci afin que l'utilisateur puisse saisir à plusieurs endroits dans le
document des données qui doivent se répéter dans plusieurs sections du
document


Le mieux est de concevoir UNE seule macro pour tous les champs Nom*
dont l'exécution serait activée en sortie de chacun. Vous pouvez
avoir Nom1 Nom2 Nom3 etc comme signets de ces champs de formulaire.

Supposons pour simplifier que tous les champs Nom* soient
en tête de paragraphe :

Public Sub TousNomsPareils()
Dim Nom As String
Dim FF As FormField
Nom = Selection.Paragraphs(1).Range.FormFields(1).Result
For Each FF In ActiveDocument.FormFields
If Left(FF.Name, 3) = "Nom" Then FF.Result = Nom
Next FF
End Sub

Anacoluthe
« C'est un ami dont je ne connais pas le nom,
et je le connais depuis trop longtemps pour lui demander. »
- Georges FEYDEAU