Pb Macro condition cellule
Résolu
Pimp92a
Messages postés
442
Statut
Membre
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
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.
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:
- Pb Macro condition cellule
- Excel cellule couleur si condition texte - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Proteger cellule excel - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
5 réponses
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
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
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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,
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,