OVH Cloud OVH Cloud

Un problème bête de copier coller

12 réponses
Avatar
AB
Hello !
J'ai essayé de dépanner quelqu'un ici-même en copiant le code d'un champ et
en le collant dans le message.
Le résultat, c'est que c'est le résultat du champ qui se colle, non le code.
J'ai essayé dans Word avec toutes les options possibles du collage spécial :
rien à faire !
Bref, qui me dira comment copier le code d'un champ et le coller dans un
message tel que celui-ci ?
AB

10 réponses

1 2
Avatar
Geo

Hello !
J'ai essayé de dépanner quelqu'un ici-même en copiant le code d'un champ et en le
collant dans le message.
Le résultat, c'est que c'est le résultat du champ qui se colle, non le code.
J'ai essayé dans Word avec toutes les options possibles du collage spécial : rien à
faire !
Bref, qui me dira comment copier le code d'un champ et le coller dans un message tel
que celui-ci ?
AB


Marre de ce genre de problème, surtout avec des champs imbriqués, je me
suis donc fait une petite macro (oui, je sais, incorrigible) qui
transforme le champ en texte prêt à coller:

Sub RemplaceChampParTexte()
Dim T As String
Dim aField As Field
For Each aField In ActiveDocument.Fields
T = aField.Code.Text
aField.Select
Selection.TypeText Text:="{" & T & "}"
Next aField
End Sub

On pourrait limiter à la sélection courante ou même à un champ et
copier le résultat dans le bloc-notes.

--
A+

Avatar
phil
Salut
tu sélectionner le champ sans les accolades tu copies tu recolles où ça te
chante et tu tapes tes accolades au clavier Alt Gr+4 et Alt Gr+ la preuve en image !
{TIME @ "dd/MM/yyyy"}
no problèmo

@+Phil


"AB" a écrit dans le message de news:
%
Hello !
J'ai essayé de dépanner quelqu'un ici-même en copiant le code d'un champ
et en le collant dans le message.
Le résultat, c'est que c'est le résultat du champ qui se colle, non le
code.
J'ai essayé dans Word avec toutes les options possibles du collage spécial
: rien à faire !
Bref, qui me dira comment copier le code d'un champ et le coller dans un
message tel que celui-ci ?
AB




Avatar
Geo

Merci à tous les deux.
Phil : ça ne marche que si tu as un champ simple. Dès que tu as plusieurs champs
imbriqués (ce qui est le cas en l'occurrence), ça foire.
Geo, ça marche, mais les accolades sont transformées en carrés. Problème de police ?
J'en ai essayé plusieurs pourtant...


Ok pour moi :

{ PAGE * MERGEFORMAT }

Curieux surtout qu'il n'y a pas de codage, les { et } sont tapées
directement au clavier.

Dans la macro, tu vois quoi sur la ligne :
Selection.TypeText Text:="{" & t & "}"

--
A+

Avatar
AB
Merci à tous les deux.
Phil : ça ne marche que si tu as un champ simple. Dès que tu as plusieurs
champs imbriqués (ce qui est le cas en l'occurrence), ça foire.
Geo, ça marche, mais les accolades sont transformées en carrés. Problème de
police ? J'en ai essayé plusieurs pourtant...
André


"phil" a écrit dans le message de news:
44980a20$0$29783$
Salut
tu sélectionner le champ sans les accolades tu copies tu recolles où ça te
chante et tu tapes tes accolades au clavier Alt Gr+4 et Alt Gr+ > la preuve en image !
{TIME @ "dd/MM/yyyy"}
no problèmo

@+Phil


"AB" a écrit dans le message de news:
%
Hello !
J'ai essayé de dépanner quelqu'un ici-même en copiant le code d'un champ
et en le collant dans le message.
Le résultat, c'est que c'est le résultat du champ qui se colle, non le
code.
J'ai essayé dans Word avec toutes les options possibles du collage
spécial : rien à faire !
Bref, qui me dira comment copier le code d'un champ et le coller dans un
message tel que celui-ci ?
AB








Avatar
Geo
désolé pour l'erreur d'heure.
J'ai l'impression que quand mon micro est en veille il s'endort pour de
bon.

--
A+
Avatar
Anacoluthe
Bonjour Geo !

'Geo' nous a écrit ...
Curieux surtout qu'il n'y a pas de codage, les { et } sont tapées
directement au clavier.


André veut parler des champs imbriqués !
Si dans ton champ il y a un autre champ, ton T = aField.Code.Text
va contenir les chr(19) et chr(20) des {} des champs !
Il suffit de compléter ta macro par un remplacement aussi
/dans/ T de ces caractères par de vrais "{" et "}"

Anacoluthe
« La science est l'art des accolades. »
- Louis SCUTENAIRE

Avatar
Geo

Bonjour Geo !

'Geo' nous a écrit ...
Curieux surtout qu'il n'y a pas de codage, les { et } sont tapées directement au
clavier.


André veut parler des champs imbriqués !
Si dans ton champ il y a un autre champ, ton T = aField.Code.Text
va contenir les chr(19) et chr(20) des {} des champs !
Il suffit de compléter ta macro par un remplacement aussi
/dans/ T de ces caractères par de vrais "{" et "}"


D'accord, on va y arriver. Un peu de récursivité sans doute.
Je regarde.

--
A+


Avatar
Geo

va contenir les chr(19) et chr(20) des {} des champs !


Ta solution est la meilleure (évidemment) sauf que d'après la macro
"Code ASCII" de Guy c'est 21, ce qui donne :

Sub RemplaceChampParTexte()
Dim T As String
Dim aField As Field
For Each aField In ActiveDocument.Fields
T = Replace(aField.Code.Text, Chr(19), "{")
T = Replace(T, Chr(21), "}")
aField.Select
Selection.TypeText Text:="{" & T & "}"
Next aField
End Sub

Bonne soirée

--
A+

Avatar
Anacoluthe
Bonjour !

'Geo' nous a écrit ...
Sub RemplaceChampParTexte()


Oui je me suis trompé, c'est chr(21) pour }

Mais j'espérais que tu nous la ferais récursive ! :-D

A+
A~

Avatar
AB
Hello !
On y est ! Ca marche nickel. Effectivement, il s'agit de champs imbriqués.
Merci à vous deux.
A+
André

"Anacoluthe" a écrit dans le message de news:

Bonjour !

'Geo' nous a écrit ...
Sub RemplaceChampParTexte()


Oui je me suis trompé, c'est chr(21) pour }

Mais j'espérais que tu nous la ferais récursive ! :-D

A+
A~



1 2