OVH Cloud OVH Cloud

Interdire l'impression

4 réponses
Avatar
Fredo \(67\)
Bonjour,

j'ai créé un tableau pour des collègues.
Dans ce tableau, une cellule vérifie qu'il n'y a pas d'erreur dans le-dit
tableau.
(Elle afiche "controle OK" ou "Erreur")

Puis-je interdire l'impression du document (et l'impression uniquement, le
document doit quand meme pouvoir etre enregistré) ?

Merci.

4 réponses

Avatar
papou
Bonjour
A adapter et à positionner dans ThisWorkbook :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Worksheets("Feuil1").Range("A1").Value = "Erreur" Then Cancel = True
End Sub

Cordialement
Pascal

"Fredo (67)" a écrit dans le message de news:
%
Bonjour,

j'ai créé un tableau pour des collègues.
Dans ce tableau, une cellule vérifie qu'il n'y a pas d'erreur dans le-dit
tableau.
(Elle afiche "controle OK" ou "Erreur")

Puis-je interdire l'impression du document (et l'impression uniquement, le
document doit quand meme pouvoir etre enregistré) ?

Merci.




Avatar
Fredo(67)
Ok, j'ai essayé de l'intégrer mais y'a une faute :
en fait voilà ce que je veux faire :
1- si la cellule E1 de la feuille SITUATIONS contient la valeur "ERREUR
SUR FEUILLE DE SAISIE" ==> Affichage de l'information puis ARRET de la
macro
2- si non ==> demande de la question suivante "VOULEZ VOUS UNE
SAUVEGARDE AVANT IMPRESSION"
3- sauvegarde ou non puis impression

voilà mon code
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Worksheets("situations").Range("e1").Value = "ERREUR SUR FEUILLE DE
SAISIE" Then
MsgBox "Erreur sur feuille" & Chr(13) & "Impression impossible.",
vbInformation
Exit Sub
Else
Dim msginvite As String, msgtitre As String
Dim msgboutons As Integer, msgresultat As Integer
msginvite = "VOULEZ-VOUS SAUVEGARDER AVANT D'IMPRIMER
?" & Chr(13) & "non=impression sans sauvegarde"
msgboutons = vbYesNo + vbQuestion + vbDefaultButton1
msgtitre = "IMPRESSION"
msgresultat = MsgBox(msginvite, msgboutons, msgtitre)
Select Case msgresultat
Case vbYes
ActiveWorkbook.Save
Case vbNo
End
End Select

End If
End Sub

il m'affiche bien l'info, mais ne stoppe pas la macro, et lance la
commande d'impression.

où se situe l'erreur ?

merci
Avatar
Fredo(67)
j'ai corrigé comme ceci :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Worksheets("situations").Range("e1").Value = "ERREUR SUR FEUILLE DE
SAISIE" Then
MsgBox "Erreur sur feuille" & Chr(13) & "Impression impossible.",
vbInformation
Cancel = True
Else
Dim msginvite As String, msgtitre As String
Dim msgboutons As Integer, msgresultat As Integer
msginvite = "VOULEZ-VOUS SAUVEGARDER AVANT D'IMPRIMER
?" & Chr(13) & "non=impression sans sauvegarde"
msgboutons = vbYesNo + vbQuestion + vbDefaultButton1
msgtitre = "IMPRESSION"
msgresultat = MsgBox(msginvite, msgboutons, msgtitre)
Select Case msgresultat
Case vbYes
ActiveWorkbook.Save
Case vbNo
End
End Select

End If
End Sub
Avatar
papou
Re

Ce que je te suggère :
Positionner ceci dans le code de ThisWorkbook :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Worksheets("situations").Range("e1").Value = "ERREUR SUR FEUILLE DE
SAISIE" Then
MsgBox "Erreur sur feuille" & Chr(13) & "Impression
impossible.",vbInformation
Cancel = True
Else
Sauvegarde
End if
End Sub

Puis dans un module
Sub Sauvegarde()
Dim msginvite As String, msgtitre As String
Dim msgboutons As Integer, msgresultat As Integer
msginvite = "VOULEZ-VOUS SAUVEGARDER AVANT D'IMPRIMER
?" & Chr(13) & "non=impression sans sauvegarde"
msgboutons = vbYesNo + vbQuestion + vbDefaultButton1
msgtitre = "IMPRESSION"
msgresultat = MsgBox(msginvite, msgboutons, msgtitre)
Select Case msgresultat
Case vbYes
ActiveWorkbook.Save
Case vbNo
End
End Select
End Sub

Cordialement
Pascal

"Fredo(67)" a écrit dans le message de news:

Ok, j'ai essayé de l'intégrer mais y'a une faute :
en fait voilà ce que je veux faire :
1- si la cellule E1 de la feuille SITUATIONS contient la valeur "ERREUR
SUR FEUILLE DE SAISIE" ==> Affichage de l'information puis ARRET de la
macro
2- si non ==> demande de la question suivante "VOULEZ VOUS UNE
SAUVEGARDE AVANT IMPRESSION"
3- sauvegarde ou non puis impression

voilà mon code
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Worksheets("situations").Range("e1").Value = "ERREUR SUR FEUILLE DE
SAISIE" Then
MsgBox "Erreur sur feuille" & Chr(13) & "Impression impossible.",
vbInformation
Exit Sub
Else
Dim msginvite As String, msgtitre As String
Dim msgboutons As Integer, msgresultat As Integer
msginvite = "VOULEZ-VOUS SAUVEGARDER AVANT D'IMPRIMER
?" & Chr(13) & "non=impression sans sauvegarde"
msgboutons = vbYesNo + vbQuestion + vbDefaultButton1
msgtitre = "IMPRESSION"
msgresultat = MsgBox(msginvite, msgboutons, msgtitre)
Select Case msgresultat
Case vbYes
ActiveWorkbook.Save
Case vbNo
End
End Select

End If
End Sub

il m'affiche bien l'info, mais ne stoppe pas la macro, et lance la
commande d'impression.

où se situe l'erreur ?

merci