Bloquer Impression

Ykarul

XLDnaute Nouveau
Bonjour,

J'ai créé un formulaire qui rempli automatiquement une fiche.
Cette fiche est imprimé lorsque l'on appui sur un bouton que j'ai créé (il fait quelques tests avant d'imprimer pour être sur que le formulaire soit bien rempli).

Je veux que les utilisateur ne puisse imprimé QUE par ce moyen, et donc bloquer tous les autres modes d'impression. (Il doivent quand même pouvoir accéder au parametres de l'imprimante, mais pas imprimer).

Je n'arrive pas à trouver comment faire donc si quelqu'un a la soluce, je suis preneur.

PS : dans mon bouton, l'impression se déroule comme cela :
Sheets("Fiche finale").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
 

JNP

XLDnaute Barbatruc
Re : Bloquer Impression

Bonjour Ykarul et bienvenue :),
Tu peux bloquer le Ctrl+p en mettant dans ThisWorkBook
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "^p"
End Sub
Private Sub Workbook_Open()
Application.OnKey "^p", ""
End Sub
Il est aussi possible de supprimer l'impression dans le menu mais je ne te le conseilles pas, car si tu plantes, tu risques d'être longtemps maudit par celui qui ne pourra plus imprimer aucun de ses documents :rolleyes:...
Bon courage :cool:
 

Ykarul

XLDnaute Nouveau
Re : Bloquer Impression

Euh, je l'ai collé dans thisworkbook, mais ca ne marche pas...

Il est toujours possible d'imprimer!

Sinon au pire, comment empecher totalement l'impression de certaines feuilles?
 
Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : Bloquer Impression

Salut Ykarul et le forum
Je déclarerai une booléenne en globale => ton bouton la mettrais à true, et j'utiliserais la macro à lancement automatique Workbook_BeforePrint (dans le module ThisWorkBook) en mettant chancel à la valeur de la variable globale, avec ou sans message d'avertissement, qui quand on imprime sera remise à zéro.
A+
 

Ykarul

XLDnaute Nouveau
Re : Bloquer Impression

Voila le code du bouton, comme vous pouvez le voir il fait quelques petites choses avant d'imprimer!
(D'ailleur si vous savez comment changer la question avec réponse a taper en question avec choix OUI/NON je suis preneur!)

Private Sub Impression_Click()
If Range("P44") = FAUX Then

MsgBox ("Le type du poste choisi n'est pas compatible avec le type du centre analytique. Veuillez selectionner un poste dont le type est compatible."): Exit Sub
End If


If Range("N43") <> 0 Then
MsgBox ("Vous n'avez pas rempli tous les champs (cases en rouge)"): Exit Sub

End If

Dim REP As String

REP = Application.InputBox(Prompt:="Voulez vous confirmer l'impression de la Fiche finale? (OUI/NON) : ", Type:=2)

If REP = "OUI" Or REP = "Oui" Or REP = "oui" Or REP = "o" Or REP = "O" Then
Sheets("Fiche finale").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

Else: MsgBox ("Anulation")

End If
End Sub
 

JNP

XLDnaute Barbatruc
Re : Bloquer Impression

Re :),
En utilisant la méthode de Goerfael :
A mettre dans un module normal :
Code:
Public Flag As Boolean
A mettre dans ThisWorkbook
Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Flag = False Then Cancel = True
End Sub
et enfin ta macro corrigée
Code:
Private Sub Impression_Click()
Dim REP As Byte
If Range("P44") = FAUX Then
MsgBox "Le type du poste choisi n'est pas compatible avec le type du centre analytique. Veuillez selectionner un poste dont le type est compatible !", vbCritical + vbOKOnly: Exit Sub
End If
If Range("N43") <> 0 Then
MsgBox "Vous n'avez pas rempli tous les champs (cases en rouge) !", vbCritical + vbOKOnly: Exit Sub
End If
REP = MsgBox("Voulez vous confirmer l'impression de la Fiche finale ?", vbYesNo)
If REP = vbYes Then
Flag = True
Sheets("Fiche finale").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Flag = False
Else: MsgBox "Anulation", vbOKOnly
End If
End Sub
Bonne journée :cool:
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 545
Messages
2 089 453
Membres
104 169
dernier inscrit
alain_geremy