OVH Cloud OVH Cloud

Ne pas autoriser l'impression mais laisser l'apperçu

4 réponses
Avatar
Patrick Fredin
Bonjour,

J'ai bloqué l'impression d'une feuille Excel quand on clique sur le bouton
"Imprimer" ou qu'on utilise la commande dans le menu "Fichier" parce que je
veux imposer le choix de critères avant l'impression.

Par contre, je ne voudrais pas bloquer quand on choisis l'aperçu avant
impression.

Est-il possible, en VBA, de détecter qu'on a lancé la commande d'aperçu (par
le menu ou en cliquant sur le bouton) ?

Merci pour votre aide.

--
Patrick

--
Patrick

4 réponses

Avatar
anonymousA
bonjour,

pas trop réfléchi à la question mais l'idée me vient qu'il faudrait
modifier la destination de la macro intégrée d'Excel pour l'envoyer sur
une macro à soi avec donc la possibilité de détecter du coup que
celle-ci a été lancée puis lancer la macro intégrée d'Excel ensuite.

Je reconnais que j'ai pas testé

exemple



Sub AutreOuvrir()
'ici on modifie le comportement d'une commande intégrée d'Excel
'(ici la commande Ouvrir du menu Fichier)
Application.CommandBars("Worksheet Menu Bar"). _
Controls("Fichier").Controls("&Ouvrir...").OnAction = "Macroàmoi"
End Sub

Sub Macroàmoi()
MsgBox "c'est la macro à moi" 'ici on sait donc que c'est ce controle
'qui a été activé
RetablirOuvrir() 'on rend la main à la macro intégrée d'Excel
Application.CommandBars("Worksheet Menu Bar")._
Controls("Fichier").Controls("&Ouvrir...").Execute 'on la lance
End Sub

Sub RetablirOuvrir()
Application.CommandBars("Worksheet Menu Bar"). _
Controls("Fichier").Controls("&Ouvrir...").Reset
End Sub

A+

Bonjour,

J'ai bloqué l'impression d'une feuille Excel quand on clique sur le bouton
"Imprimer" ou qu'on utilise la commande dans le menu "Fichier" parce que je
veux imposer le choix de critères avant l'impression.

Par contre, je ne voudrais pas bloquer quand on choisis l'aperçu avant
impression.

Est-il possible, en VBA, de détecter qu'on a lancé la commande d'aperçu (par
le menu ou en cliquant sur le bouton) ?

Merci pour votre aide.



Avatar
Patrick Fredin
Bonjour,

C'est à mon avis un peu compliquer, d'autant plus que cela ne doit
s'appliquer que sur une feuille d'un classeur.

J'ai contourné le problème autrement.

Merci.

Patrick


bonjour,

pas trop réfléchi à la question mais l'idée me vient qu'il faudrait
modifier la destination de la macro intégrée d'Excel pour l'envoyer sur
une macro à soi avec donc la possibilité de détecter du coup que
celle-ci a été lancée puis lancer la macro intégrée d'Excel ensuite.

Je reconnais que j'ai pas testé

exemple



Sub AutreOuvrir()
'ici on modifie le comportement d'une commande intégrée d'Excel
'(ici la commande Ouvrir du menu Fichier)
Application.CommandBars("Worksheet Menu Bar"). _
Controls("Fichier").Controls("&Ouvrir...").OnAction = "Macroàmoi"
End Sub

Sub Macroàmoi()
MsgBox "c'est la macro à moi" 'ici on sait donc que c'est ce controle
'qui a été activé
RetablirOuvrir() 'on rend la main à la macro intégrée d'Excel
Application.CommandBars("Worksheet Menu Bar")._
Controls("Fichier").Controls("&Ouvrir...").Execute 'on la lance
End Sub

Sub RetablirOuvrir()
Application.CommandBars("Worksheet Menu Bar"). _
Controls("Fichier").Controls("&Ouvrir...").Reset
End Sub

A+

Bonjour,

J'ai bloqué l'impression d'une feuille Excel quand on clique sur le bouton
"Imprimer" ou qu'on utilise la commande dans le menu "Fichier" parce que je
veux imposer le choix de critères avant l'impression.

Par contre, je ne voudrais pas bloquer quand on choisis l'aperçu avant
impression.

Est-il possible, en VBA, de détecter qu'on a lancé la commande d'aperçu (par
le menu ou en cliquant sur le bouton) ?

Merci pour votre aide.






Avatar
anonymousA
ne pas tenir compte du post précédent qui a priori est foireux.

A+

bonjour,

pas trop réfléchi à la question mais l'idée me vient qu'il faudrait
modifier la destination de la macro intégrée d'Excel pour l'envoyer sur
une macro à soi avec donc la possibilité de détecter du coup que
celle-ci a été lancée puis lancer la macro intégrée d'Excel ensuite.

Je reconnais que j'ai pas testé

exemple



Sub AutreOuvrir()
'ici on modifie le comportement d'une commande intégrée d'Excel
'(ici la commande Ouvrir du menu Fichier)
Application.CommandBars("Worksheet Menu Bar"). _
Controls("Fichier").Controls("&Ouvrir...").OnAction = "Macroàmoi"
End Sub

Sub Macroàmoi()
MsgBox "c'est la macro à moi" 'ici on sait donc que c'est ce controle
'qui a été activé
RetablirOuvrir() 'on rend la main à la macro intégrée d'Excel
Application.CommandBars("Worksheet Menu Bar")._
Controls("Fichier").Controls("&Ouvrir...").Execute 'on la lance
End Sub

Sub RetablirOuvrir()
Application.CommandBars("Worksheet Menu Bar"). _
Controls("Fichier").Controls("&Ouvrir...").Reset
End Sub

A+


Bonjour,

J'ai bloqué l'impression d'une feuille Excel quand on clique sur le
bouton "Imprimer" ou qu'on utilise la commande dans le menu "Fichier"
parce que je veux imposer le choix de critères avant l'impression.

Par contre, je ne voudrais pas bloquer quand on choisis l'aperçu avant
impression.

Est-il possible, en VBA, de détecter qu'on a lancé la commande
d'aperçu (par le menu ou en cliquant sur le bouton) ?

Merci pour votre aide.





Avatar
anonymousA
re,

ca c'est déjà mieux que le POST précédent


Sub AutreApreçuavantimpression()

Application.CommandBars("Worksheet Menu
Bar").Controls("&Fichier").Controls("&Aperçu avant impression").OnAction
= "Macroàmoi"
End Sub

Sub Macroàmoi()

MsgBox Application.CommandBars.ActionControl.Caption
Application.Dialogs(xlDialogPrintPreview).Show

End Sub

Sub RetablirApercuavantimpression()

Application.CommandBars("Worksheet Menu
Bar").Controls("&Fichier").Controls("&Aperçu avant impression").Reset


End Sub

A+

Bonjour,

J'ai bloqué l'impression d'une feuille Excel quand on clique sur le bouton
"Imprimer" ou qu'on utilise la commande dans le menu "Fichier" parce que je
veux imposer le choix de critères avant l'impression.

Par contre, je ne voudrais pas bloquer quand on choisis l'aperçu avant
impression.

Est-il possible, en VBA, de détecter qu'on a lancé la commande d'aperçu (par
le menu ou en cliquant sur le bouton) ?

Merci pour votre aide.