Message lors fermeture d'une feuille

Hugues

XLDnaute Impliqué
Bonjour Le Forum,

Dans un classeur, j'ai plusieurs feuilles, dont :
une feuille intitulée "saisie"
une autre intitulée "résultat"

Je souhaiterais lors de la fermeture de la feuille "résultat", un message d'erreur apparaît si aucune saisie n'est faite sur la feuille "saisie"

j'ai utilisé l'instruction suivante :

Private Sub Worksheet_Deactivate()
Dim ws1 As Worksheet
Dim ws2 As Worksheet

Set ws1 = Sheets("saisie")
Set ws2 = Sheets("résultat")



'Localisation des charges mailing
a = ws2.Application.WorksheetFunction.CountBlank(Range("A1:A4"))

MsgBox ("Nbre de cellules vides A1-A4 =" & a)



'Si plus d'une cellule vide en A alors message
If a <> 4 Then
msg1 = "Pas de saisie en colonne A"
End If


If a <> 4 Then
msg = "Attention, la saisie est incomplète : "
msg = msg & vbNewLine

msg = msg & msg1


Message = MsgBox(msg, 48, "Vérification remplissage : ")

End If
End Sub

Le souci, le comptage des cellules ne se fait pas sur la bonne feuille (saisie) mais ce fait sur la feuille résultat.

Auriez vous une solutiuon ?

Merci par avance,

Hugues
 

Pièces jointes

  • message_lors_fermeture_feuille.xls
    22 KB · Affichages: 32

Grand Chaman Excel

XLDnaute Impliqué
Re : Message lors fermeture d'une feuille

Bonjour,

Sans avoir testé, quelque chose comme ça peut-être :

Code:
a = ws1.Application.WorksheetFunction.CountBlank(ws1.Range ("A1:A4"))

ou plus simplement :

Code:
a = Application.WorksheetFunction.CountBlank(ws1.Range ("A1:A4"))
 
Dernière édition:

laurent950

XLDnaute Accro
Re : Message lors fermeture d'une feuille

Bonsoir,

je pense que cela doit être bon

Private Sub Worksheet_Deactivate()

'Localisation des charges mailing

a = Application.WorksheetFunction.CountBlank(Range(Cells(1, 1), Cells(4, 1)))
MsgBox ("Nbre de cellules vides A1-A4 =" & a)



'Si plus d'une cellule vide en A alors message
If a = 4 Then
msg1 = "Pas de saisie en colonne A"
MsgBox msg1
End If

If a < 4 Then
msg = "Attention, la saisie est incomplète : "
msg = msg & vbNewLine
msg = msg & msg1

Message = MsgBox(msg, 48, "Vérification remplissage : ")

End If

End Sub

laurent
 

Discussions similaires

Statistiques des forums

Discussions
311 732
Messages
2 081 995
Membres
101 857
dernier inscrit
mt60400