XL 2010 blocage d'impression de seulement un onglet si cellule vide

sebbbbb

XLDnaute Impliqué
bonjour a tous

Apres plusieurs mois d'absence je me permets de vous consulter a nouveau car j'ai un problème sur une macro

Sur un fichier comportant de nombreux onglets je souhaiterai bloquer l'impression de seulement un onglet appelé CSR lorsque des cellules I9 et L9 sont vides. j'ai trouvé le script ci-dessous mais malheureusement cela me bloque toutes les impressions des autres pages tant que ces cellules sont vides. En fait je voudrai que cela soit effectif seulement lorsque l'on est sur l'onglet "CSR" et que l'on imprime cet onglet (si les cellules sont vides bien sur)

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Sheets("CSR").Range("I9").Value = "" Or Sheets("CSR").Range("L9").Value = "" Then
Cancel = True
MsgBox "Remplissez I9 et L9 pour pouvoir imprimer"
End If
End Sub

un grand merci par avance
seb
 

youky(BJ)

XLDnaute Barbatruc
Bonjour Seb,
Avec une ligne de plus
Bruno
Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name <> "CSR" Then Exit Sub
If Sheets("CSR").Range("I9").Value = "" Or Sheets("CSR").Range("L9").Value = "" Then
Cancel = True
MsgBox "Remplissez I9 et L9 pour pouvoir imprimer"
End If
End Sub
 

sebbbbb

XLDnaute Impliqué
Bonjour Bruno
c'est parfait ! un grand merci a toi. cela m'enlève une épine du pied :)

Puis je abuser de tes connaissances et te demander un petit peu d'aide encore ?

en fait maintenant que j'ai le script, j'ai essayer d'ajouter la même chose pour une deuxième feuille nommée Sof Tata avec la cellule A9 ; mais forcement j'ai un bug. je me rends bien compte lorsque je lis le script il y a qqchose qui cloche mais je n'arrive pas à trouver la solution. de plus je crois que l'on ne peut pas mettre 2 scripts l'un en dessous de l'autre commençant par la même ligne, non ? (exemple : Private Sub Workbook_BeforePrint(Cancel As Boolean)

voila mon script. Si tu pouvais m'aider ce serait super sympa. Merci. Il se peut que j'ajoute encore d'autres conditions apres. Est ce aussi faisable ?

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name <> "CSR" Then Exit Sub
If Sheets("CSR").Range("I9").Value = "" Or Sheets("CSR").Range("L9").Value = "" Then
Cancel = True
MsgBox "Veuillez insérer les dates de mise a quai et départ du navire pour pouvoir imprimer"
End If
If ActiveSheet.Name <> "Sof Tata" Then Exit Sub
If Sheets("Sof Tata").Range("A9").Value = "" Then
Cancel = True
MsgBox "Veuillez insérer le nom de l'armateur ou opérateur pour pouvoir imprimer"
End If
End Sub

merci beaucoup par avance
seb
 

youky(BJ)

XLDnaute Barbatruc
Bonsoir j'ai remplacé <> par = enlevé le Exit Sub et ajouté un End If
Bruno
Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "CSR" Then
If Sheets("CSR").Range("I9").Value = "" Or Sheets("CSR").Range("L9").Value = "" Then
Cancel = True
MsgBox "Veuillez insérer les dates de mise a quai et départ du navire pour pouvoir imprimer"
End If
End If

If ActiveSheet.Name = "Sof Tata" Then
If Sheets("Sof Tata").Range("A9").Value = "" Then
Cancel = True
MsgBox "Veuillez insérer le nom de l'armateur ou opérateur pour pouvoir imprimer"
End If
End If
End Sub
 

youky(BJ)

XLDnaute Barbatruc
Yes,
j'ai 2 If par paragraphe donc 2 End if
Exemple
If jostik=feu then missiles 'pas besoin de End if car sur même ligne à la suite
on peut mettre aussi
if jostik=feu then
missiles
End if

ou encore quand c'est long
If jostik=feu Then _
missile:explosion

ici pour info missile envoie à la macro missile et ensuite à la macro explosion
Pas besoin du End if ici car j'ai mis un espace et tiret-bas après le Then
Faut pas avoir peur d'aller en bug pour s'améliorer
Bruno
 

Discussions similaires