OVH Cloud OVH Cloud

VBA Masquer texte rouge à l'impression

8 réponses
Avatar
Willy Gruner
Bonsoir à toutes et tous,
Un petit problème à vous soumettre;
Je travaille avec Word 2002.
Dans un document j'ai des questions en noir et les réponses en rouge.
J'aimerai imprimer le questionnaire sans les réponses.
Alors j'ai écrit la macro suivant qui ne marche pas sniffffff
Pourriez-vous me donner un coup de main svp ?


Sub MasqueTexteEnRougeImpression()

Selection.WholeStory

If Selection.Range.Font.Color = wdColorRed Then
ActiveDocument.Text.Hidden = True
ActiveDocument.ActiveWindow.View.ShowHiddenText = False
Application.PrintOut
End If

End Sub

Merci d'avance pour votre aide
Willy

8 réponses

Avatar
Guy Moncomble
Bonjour à tous,
dans le message <bk5c36$uq5$,

| Bonsoir à toutes et tous,
| Un petit problème à vous soumettre;
| Je travaille avec Word 2002.
| Dans un document j'ai des questions en noir et les réponses en rouge.
| J'aimerai imprimer le questionnaire sans les réponses.
| Alors j'ai écrit la macro suivant qui ne marche pas sniffffff
| Pourriez-vous me donner un coup de main svp ?
|
|
| Sub MasqueTexteEnRougeImpression()
|
| Selection.WholeStory
|
| If Selection.Range.Font.Color = wdColorRed Then
| ActiveDocument.Text.Hidden = True
| ActiveDocument.ActiveWindow.View.ShowHiddenText = False
| Application.PrintOut
| End If
|
| End Sub

Mais comment veux-tu que tout cela marche ? il y a deux couleurs
différentes dans ton texte.
Et puis pourquoi faire une macro ? tu peux simplement remplacer police
rouge par police rouge, masqué.
Maintenant si tu tiens à faire une macro sache qu'il te faut balayer
l'ensemble du texte. Il y a suffisemment d'exemple de ce type de
rechercheremplacement pour que tu le fasses sans difficulté.
--
A+

GMO MVP Word

Laissées à elles-mêmes, les choses tendent à aller de pire en pire. Se
faire aider ne fait qu'accélérer le processus.

Edward A. Murphy, Jr.
Avatar
AB
Hello,
Petite variante à la proposition de Guy : si tu remplaces ton texte en rouge
par "texte masqué", tes lignes seront décalées à l'impression. Tu peux
éviter cela en remplaçant la couleur de police "rouge" par "blanc" : ta mise
en page sera conservée. Tout dépend de ce que tu veux obtenir.
AB

"Guy Moncomble" <http://cerbermail.com/?QOoOlzu81P> a écrit dans le message
de news:%
Bonjour à tous,
dans le message <bk5c36$uq5$,

| Bonsoir à toutes et tous,
| Un petit problème à vous soumettre;
| Je travaille avec Word 2002.
| Dans un document j'ai des questions en noir et les réponses en rouge.
| J'aimerai imprimer le questionnaire sans les réponses.
| Alors j'ai écrit la macro suivant qui ne marche pas sniffffff
| Pourriez-vous me donner un coup de main svp ?
|
|
| Sub MasqueTexteEnRougeImpression()
|
| Selection.WholeStory
|
| If Selection.Range.Font.Color = wdColorRed Then
| ActiveDocument.Text.Hidden = True
| ActiveDocument.ActiveWindow.View.ShowHiddenText = False
| Application.PrintOut
| End If
|
| End Sub

Mais comment veux-tu que tout cela marche ? il y a deux couleurs
différentes dans ton texte.
Et puis pourquoi faire une macro ? tu peux simplement remplacer police
rouge par police rouge, masqué.
Maintenant si tu tiens à faire une macro sache qu'il te faut balayer
l'ensemble du texte. Il y a suffisemment d'exemple de ce type de
rechercheremplacement pour que tu le fasses sans difficulté.
--
A+

GMO MVP Word

Laissées à elles-mêmes, les choses tendent à aller de pire en pire. Se
faire aider ne fait qu'accélérer le processus.

Edward A. Murphy, Jr.



Avatar
Willy Gruner
Merci Guy pour ton conseil, mais pourrais-tu quand même me donner un exemple
SVP ?

Merci d'avance
Willy le tétu
Avatar
Guy Moncomble
Bonjour à tous,
dans le message <bk83v3$rvl$,

| Merci Guy pour ton conseil, mais pourrais-tu quand même me donner un
| exemple SVP ?

Voici un exemple tenant compte de la suggestion d'André :

Public Sub Remplacer_texte()
Dim ZoneDeTexte
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Font.Color = wdColorRed
'Soit cette ligne, soit la suivante
' .Replacement.Font.Hidden = True
.Replacement.Font.Color = wdColorWhite
End With
Selection.Find.Execute Replace:=wdReplaceAll
'Pour remplacer dans les zones de texte
For Each ZoneDeTexte In ActiveDocument.Shapes
ZoneDeTexte.Select
Selection.Find.Execute Replace:=wdReplaceAll
Next ZoneDeTexte
End Sub

elle effectue un balayage (invisible) de tous les mots. Cela ne
fonctionne que parce que le traitement à effectuer est simple :
remplacement. Si des actions plus compliquées ou plus complexes sont à
effectuer sur la sélection trouvée, alors il faut balayer avec quelque
chose du type :

While Selection.Find.Execute
'Action
'Il est impératif de ramener le point d'insertion en fin de sélection
Selection.Collapse wdCollapseEnd
Wend
--
A+

GMO MVP Word

Laissées à elles-mêmes, les choses tendent à aller de pire en pire. Se
faire aider ne fait qu'accélérer le processus.

Edward A. Murphy, Jr.
Avatar
Guy Moncomble
Bonjour à tous,
dans le message <bk83v3$rvl$,

| Merci Guy pour ton conseil, mais pourrais-tu quand même me donner un
| exemple SVP ?

Voici un exemple tenant compte de la suggestion d'André :

Public Sub Remplacer_texte()
Dim ZoneDeTexte
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Font.Color = wdColorRed
'Soit cette ligne, soit la suivante
' .Replacement.Font.Hidden = True
.Replacement.Font.Color = wdColorWhite
End With
Selection.Find.Execute Replace:=wdReplaceAll
'Pour remplacer dans les zones de texte
For Each ZoneDeTexte In ActiveDocument.Shapes
ZoneDeTexte.Select
Selection.Find.Execute Replace:=wdReplaceAll
Next ZoneDeTexte
End Sub

elle effectue un balayage (invisible) de tous les mots. Cela ne
fonctionne que parce que le traitement à effectuer est simple :
remplacement. Si des actions plus compliquées ou plus complexes sont à
effectuer sur la sélection trouvée, alors il faut balayer avec quelque
chose du type :

While Selection.Find.Execute
'Action
'Il est impératif de ramener le point d'insertion en fin de sélection
Selection.Collapse wdCollapseEnd
Wend
--
A+

GMO MVP Word

Laissées à elles-mêmes, les choses tendent à aller de pire en pire. Se
faire aider ne fait qu'accélérer le processus.

Edward A. Murphy, Jr.
Avatar
Guy Moncomble
Bonjour à tous,

Marina va encore croire que je bégaie, pas du tout , j'ai la tremblante
%-)
En fait il y a un phénomène bizarre : apparemment, j'ai fermé OE avant
l'envoi ou juste à la fin (!!!????) ou j'ai bloqué Zone Alarm trop vite
(!!!! ????), enfin brèfle, à la réouverture de OE, réexpédition du
message. Pas glop.
--
A+

GMO MVP Word

Laissées à elles-mêmes, les choses tendent à aller de pire en pire. Se
faire aider ne fait qu'accélérer le processus.

Edward A. Murphy, Jr.

P.-S. Comme çà il y un message inutile de plus !!!!
Avatar
Willy Gruner
Un grand merci pour ton code Guy

Willy
Avatar
Willy Gruner
Un grand merci pour ton code Guy

Willy