Macro excel condition pour sauvegarder

Bonjour à tous,

je suis complètement débutant en VB et je souhaiterais simplement permettre l'enregistrement d'un fichier excel lorsque la case H4 = OK.
Après quelques recherches sur différents forum, j'ai codé ceci mais ça ne fonctionne pas.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI _As Boolean, Cancel As Boolean)
If Range("H4") = "OK" Then
Cancel = True
End If
End Sub

Quelqu'un pourrait-il m'aider svp? :)

Merci d'avance

2 réponses

  1. bonjour,

    le code en lui même fonctionne (du moins pour Excel 2003)

    En précisant simplement la feuille de la cellule H4, ça devrait marcher:

    If Sheets("nomdelafeuille").Range("H4") = "OK" Then ..

    Bonne suite

    edit: heu... en fait j'ai repris sans réfléchir; là on empêche de sauvegarder quand c'est OK
    il faudrait plutôt
    If Sheets("nomdelafeuille").Range("H4") <> "OK" Then ..
    0
    1. Bonjour,

      'test sur fermeture classeur
      Private Sub Workbook_BeforeClose(Cancel As Boolean)
        If Worksheets("feuil1").Range("H4") = "OK" Then
          Workbooks(ActiveWorkbook.Name).Close savechanges:=True
        Else
          Workbooks(ActiveWorkbook.Name).Close savechanges:=False
        End If
      End Sub
      
      'test sur enregistrement
      Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        Application.DisplayAlerts = False
        If Worksheets("feuil1").Range("H4") = "OK" Then
          ActiveWorkbook.Save
        Else
          Cancel = True
        End If
        Application.DisplayAlerts = True
      End Sub
      


      Bonne suite
      0