macro bloquer impression si cellule vide

mix770

XLDnaute Impliqué
Bonjour le grand Forum,

je viens vers vous pour une questiounette sur un problème de macro.

dans la colonne de A13:A31 j'ai des codes d'absences, dans la colonne E13:E31 il y a une mise en forme conditionnelle qui colore la cellule en jaune quand un des 2 codes est repéré. il y a un bouton impression avec une macro, je souhaiterai que l'impression se bloque (avec affichage d'un message) si dans la colonne E une cellule est en jaune et n'est pas renseignée (vide).
quelqu'un a t'il une piste ?
merci beaucoup à vous.
 

Pièces jointes

  • exemple cma.xls
    172 KB · Affichages: 52

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : macro bloquer impression si cellule vide

Bonjour Mix,

Avec ce code qui reprend les conditions de la MFC
Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
For Each cellule In Sheets("MASQUE CMA").Range("A13:A31")
If cellule = "*152" Or cellule = "*179" Then
    Cancel = True
    MsgBox ("Ne peut être imprimé car cellule jaune en E" & cellule.Row)
End If
Next cellule
End Sub

à+
Philippe
 

mix770

XLDnaute Impliqué
Re : macro bloquer impression si cellule vide

re,
alors cela fonctionne il détecte bien la cellule en jaune, ce qu'il me faudrait c'est si cette cellule est remplie il accepte l'impression, dans le cas contraire il afficherait le message "veuillez renseignez la cellule"
merci a toi
roland

Sub impression_Masque_CMA()
For Each cellule In Sheets("MASQUE CMA").Range("A13:A31")
If cellule = "*152" Or cellule = "*179" Then
Cancel = True
MsgBox ("Ne peut être imprimé car cellule jaune en E" & cellule.Row)
End If
Next cellule
'Range("A1:R42").Select
'Selection.PrintOut
Range("A1").Select
End Sub
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : macro bloquer impression si cellule vide

Re,

ce code doit être mis dans Private Sub Workbook_BeforePrint(Cancel As Boolean)

Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
For Each cellule In Sheets("MASQUE CMA").Range("A13:A31")
If (cellule = "*152" Or cellule = "*179") And cellule.Offset(0, 4) = "" Then
    Cancel = True
    MsgBox ("Ne peut être imprimé car cellule vide en E" & cellule.Row)
    Exit Sub
End If
Next cellule
End Sub

à+
Philippe
 
Dernière édition:

Discussions similaires

Réponses
4
Affichages
238

Statistiques des forums

Discussions
312 504
Messages
2 089 074
Membres
104 019
dernier inscrit
pascal la