Macro excel condition pour sauvegarder

babounet1989 Messages postés 1 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
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. Paf
     
    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
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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