OVH Cloud OVH Cloud

Impression de la feuille active - Masquer tous les "boutons"

8 réponses
Avatar
JacquesH
Bonjour à toutes et tous,

Adepte du forum XL, je commence à m'interesser aux macros dans WORD. Je
me tourne vers vous pour un petit problème car il me manque quelques
éléments que je n'ai pas trouvé dans les archives du forum, ni avec
l'enregistreur.

Je suis sur une feuille, il y a deux boutons ("Shapes"). L'un d'eux
permet de remonter au sommaire (RAS), le second permet d'imprimer.

Avec ce bouton, je souhaite :
1 - Imprimer la feuille active et uniquement elle. Je pense que j'ai
réussi avec le code suivant :
Application.PrintOut Range:=wdPrintCurrentPage

2 - Imprimer deux exemplaires de cette feuille.

3 - Faire en sorte que les 2 boutons de cette page n'apparaissent pas
lors de l'impression. C'est à dire les sélectionner, les masquer pendant
l'impression, les faire réapparaître.


Merci d'avance

Jacques

8 réponses

Avatar
Anacoluthe
Bonjour !

'JacquesH' nous a écrit ...
Adepte du forum XL, je commence à m'interesser aux macros dans WORD.
Je me tourne vers vous pour un petit problème car il me manque quelques
éléments que je n'ai pas trouvé dans les archives du forum, ni avec
l'enregistreur.
Je suis sur une feuille, il y a deux boutons ("Shapes"). L'un d'eux
permet de remonter au sommaire (RAS), le second permet d'imprimer.
Avec ce bouton, je souhaite :
1 - Imprimer la feuille active et uniquement elle. Je pense que j'ai
réussi avec le code suivant :
Application.PrintOut Range:=wdPrintCurrentPage
2 - Imprimer deux exemplaires de cette feuille.


Ajoutez Copies:=2 en paramètre de .PrintOut

3 - Faire en sorte que les 2 boutons de cette page n'apparaissent pas
lors de l'impression. C'est à dire les sélectionner, les masquer pendant
l'impression, les faire réapparaître.


Masquez les boutons : sélectionnez-les puis Format / Police / Masqué
L'option d'impression 'Texte masqué' doit être décochée

Anacoluthe
« Zorro est obligé de mettre un masque pour qu'on le reconnaisse. »
- Parick SÉBASTIEN

Avatar
Circé
Bonjour anacoluthe

Anacoluthe a couché sur son écran :

Anacoluthe
« Zorro est obligé de mettre un masque pour qu'on le reconnaisse. »
- Parick SÉBASTIEN


humm... La source d'inspiration vole au plus bas !!! :-s ;-)

Avatar
JacquesH
Bonjour,

Merci pour la réponse.

Cependant, pour la deuxième partie, cela ne me convient pas tout à fait
car je souhaite le faire en VBA :
a) Activer la page dans laquelle est mon curseur.
b) Sélectionner les boutons de la feuille activée. Evidemment je ne
connais par leur nom car je ne sais pas par avance sur quelle feuille je
suis.
c) Les masquer.
d) imprimer 2 exemplaires
e) re-afficher les boutons.

Merci d'avance.

Jacques

Bonjour !

'JacquesH' nous a écrit ...

Adepte du forum XL, je commence à m'interesser aux macros dans
WORD. Je me tourne vers vous pour un petit problème car il me manque
quelques éléments que je n'ai pas trouvé dans les archives du forum,
ni avec l'enregistreur.
Je suis sur une feuille, il y a deux boutons ("Shapes"). L'un
d'eux permet de remonter au sommaire (RAS), le second permet d'imprimer.
Avec ce bouton, je souhaite :
1 - Imprimer la feuille active et uniquement elle. Je pense que j'ai
réussi avec le code suivant :
Application.PrintOut Range:=wdPrintCurrentPage
2 - Imprimer deux exemplaires de cette feuille.



Ajoutez Copies:=2 en paramètre de .PrintOut

3 - Faire en sorte que les 2 boutons de cette page n'apparaissent pas
lors de l'impression. C'est à dire les sélectionner, les masquer
pendant l'impression, les faire réapparaître.



Masquez les boutons : sélectionnez-les puis Format / Police / Masqué
L'option d'impression 'Texte masqué' doit être décochée

Anacoluthe
« Zorro est obligé de mettre un masque pour qu'on le reconnaisse. »
- Parick SÉBASTIEN



Avatar
Anacoluthe
Bonjour !

'Circé' nous a écrit ...
« Zorro est obligé de mettre un masque pour qu'on le reconnaisse. »
- Parick SÉBASTIEN


humm... La source d'inspiration vole au plus bas !!! :-s ;-)


Fin de semaine.... ;-)
En plus je lui estropie le prénom, té !

A++
A~


Avatar
Anacoluthe
Bonjour !

'JacquesH' nous a écrit ...
Cependant, pour la deuxième partie, cela ne me convient pas tout à
fait car je souhaite le faire en VBA :
a) Activer la page dans laquelle est mon curseur.
b) Sélectionner les boutons de la feuille activée. Evidemment je ne
connais par leur nom car je ne sais pas par avance sur quelle feuille je
suis.
c) Les masquer.
d) imprimer 2 exemplaires
e) re-afficher les boutons.


Pas de problème : parcourez les InlineShape de la page,
testez pour chacun le Type wdInlineShapeOLEControlObject (bouton)
puis forcez pour ceux-là son .Range.Font.Hidden=True
Après impression même chose avec cette fois .Hiddenúlse
C'est le même vba simple que vous connaissez en Excel.

Anacoluthe
« Zorro est obligé de mettre un masque pour qu'on le reconnaisse. »
- Patrick SÉBASTIEN

Avatar
JacquesH
Merci à nouveau.

J'ai réussi à masquer et démasquer avec Hidden. Je n'avais pas pensé à
Range.Font.

En revanche, je n'ai jamais utilisé la première partie :
- parcourez les InlineShape de la page,
- testez pour chacun le Type wdInlineShapeOLEControlObject (bouton).
Pouvez-vous m'aider encore un peu ?


Merci

Jacques



Bonjour !

'JacquesH' nous a écrit ...

Cependant, pour la deuxième partie, cela ne me convient pas tout à
fait car je souhaite le faire en VBA :
a) Activer la page dans laquelle est mon curseur.
b) Sélectionner les boutons de la feuille activée. Evidemment je
ne connais par leur nom car je ne sais pas par avance sur quelle
feuille je suis.
c) Les masquer.
d) imprimer 2 exemplaires
e) re-afficher les boutons.



Pas de problème : parcourez les InlineShape de la page,
testez pour chacun le Type wdInlineShapeOLEControlObject (bouton)
puis forcez pour ceux-là son .Range.Font.Hidden=True
Après impression même chose avec cette fois .Hiddenúlse
C'est le même vba simple que vous connaissez en Excel.

Anacoluthe
« Zorro est obligé de mettre un masque pour qu'on le reconnaisse. »
- Patrick SÉBASTIEN



Avatar
Anacoluthe
Bonjour !

'JacquesH' nous a écrit ...
Pouvez-vous m'aider encore un peu ?


:-) Essayez ça
La macro que vous vouliez est la deuxième
Pour ne pas répéter la boucle des inlineshapes
elle utilise la première qui prend un paramètre vrai/faux


' -----------------------------------------------------
Public Sub MasqueBoutons(B As Boolean)
' Masque ou démasque les contrôles en InlineShape
Dim oILS As InlineShape
For Each oILS In ActiveDocument.InlineShapes
If oILS.Type = wdInlineShapeOLEControlObject Then
oILS.Range.Font.Hidden = B
End If
Next oILS
End Sub

' ------------------------------------------------------
Public Sub Imprime2FoisPageCouranteSansLesBoutons()
Options.PrintHiddenText = False
MasqueBoutons (True)
ActiveDocument.PrintOut Range:=wdPrintCurrentPage, Copies:=2
MasqueBoutons (False)
End Sub

' ------------------------------------------------------

Anacoluthe
« Zorro est obligé de mettre un masque pour qu'on le reconnaisse. »
- Patrick SÉBASTIEN

Avatar
JacquesH
Bonjour,

J'étais absent pour le week end.

Je vais essayer cela dès ce matin.

Merci pour l'aide.

Jacques.

Bonjour !

'JacquesH' nous a écrit ...

Pouvez-vous m'aider encore un peu ?



:-) Essayez ça
La macro que vous vouliez est la deuxième
Pour ne pas répéter la boucle des inlineshapes
elle utilise la première qui prend un paramètre vrai/faux


' -----------------------------------------------------
Public Sub MasqueBoutons(B As Boolean)
' Masque ou démasque les contrôles en InlineShape
Dim oILS As InlineShape
For Each oILS In ActiveDocument.InlineShapes
If oILS.Type = wdInlineShapeOLEControlObject Then
oILS.Range.Font.Hidden = B
End If
Next oILS
End Sub

' ------------------------------------------------------
Public Sub Imprime2FoisPageCouranteSansLesBoutons()
Options.PrintHiddenText = False
MasqueBoutons (True)
ActiveDocument.PrintOut Range:=wdPrintCurrentPage, Copies:=2
MasqueBoutons (False)
End Sub

' ------------------------------------------------------

Anacoluthe
« Zorro est obligé de mettre un masque pour qu'on le reconnaisse. »
- Patrick SÉBASTIEN