Pb Macro condition cellule

Résolu/Fermé
Pimp92a Messages postés 418 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 20 novembre 2022 - 3 août 2009 à 15:54
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 4 août 2009 à 09:49
Bonjour,

J'ai un fichier contenant des informations. Dans une cellule, il y a 1 menu déroulant avec O ou N. Si c'est N, l'utilisateur peut fermer le fichier comme il veut. Si c'est O, il doit remplir obligatoirement une autre cellule. J'ai donc réalisé une macro pour cela. Elle fonctionne bien, mais en fait elle fonctionne trop bien. Lorsque c'est un O, Excel me dit de compléter la cellule, mais lorsque je la complète, il m'empêche quand même de fermer le fichier. Je ne sais pas quoi faire pour qu'il comprenne que j'ai bien rempli la cellule. Voici ma macro :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'avant la fermeture du classeur
If Sheets("Feuil1").Range("H6") = "O" Then
MsgBox "Complétez la cellule H7"
'Empêche la fermeture si la cellule H7 est vide
Cancel = True

End If 'fin de la condition

End Sub

Merci d'avance pour vos réponses.
A voir également:

5 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
3 août 2009 à 16:19
Salut,
Tu ne mets pas, dans ton code la condition : "si H7 = ...".

If Sheets("Feuil1").Range("H6") = "O" Then 'Si H6 = "O" alors...
If Sheets("Feuil1").Range("H7") = "toto" then 'Si H7 = toto alors
exit sub 'tout va bien, on sort de la macro
else 'sinon ...
MsgBox "Complétez la cellule H7"
'Empêche la fermeture si la cellule H7 est vide
Cancel = True
End if
End If 'fin de la condition
0
Pimp92a Messages postés 418 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 20 novembre 2022 44
3 août 2009 à 16:27
Ah ok merci de ta réponse je vais essayer cela, et si ça marche je mettrai le pb en résolu

Edit : J'ai essayé ce que tu m'as dis, et je te remercie de ta réponse, mais j'ai l'impression que dans ce que tu m'as donné je suis obligé de mettre une valeur dans la cellule H7. Or dans ma cellule, il faut qu'il y ait soit quelque chose, soit rien du tout.


0
Pimp92a Messages postés 418 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 20 novembre 2022 44
3 août 2009 à 17:26
Je n'y arrive toujours pas si quelqu'un peut m'expliquer
0
Pimp92a Messages postés 418 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 20 novembre 2022 44
3 août 2009 à 17:43
C'est bon j'ai tatonné et j'ai trouvé. Merci en tout cas; pb résolu
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
4 août 2009 à 09:49
Salut,
Effectivement d'après mon code :
If Sheets("Feuil1").Range("H7") = "toto" then
il devait y avoir écrit "toto" en H7. Je pensais qu'en écrivant toto dans le code tu l'aurais capté tout de suite...
Si tu veux soit rien soit n'importe quoi tu dois écrire :
If Sheets("Feuil1").Range("H7") <> "" then

Ce qui donne la macro suivante :

If Sheets("Feuil1").Range("H6") = "O" Then 'Si H6 = "O" alors...
If Sheets("Feuil1").Range("H7") <> "" then 'Si H7 est différent de rien, alors
exit sub 'tout va bien, on sort de la macro
else 'sinon ...
MsgBox "Complétez la cellule H7"
'Empêche la fermeture si la cellule H7 est vide
Cancel = True
End if
End If

Cordialement,
0