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   -
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.
Configuration: Windows XP Internet Explorer 7.0

5 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  2. Pimp92a Messages postés 442 Statut Membre 44
     
    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
  3. Pimp92a Messages postés 442 Statut Membre 44
     
    Je n'y arrive toujours pas si quelqu'un peut m'expliquer
    0
  4. Pimp92a Messages postés 442 Statut Membre 44
     
    C'est bon j'ai tatonné et j'ai trouvé. Merci en tout cas; pb résolu
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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