Enregistrement sous condition

Bonjour le forum,

J'ai le code ci-après qui ne fonctionne pas. Il me met en surbrillance "If target.adress". Ce code consiste à enregistrer un document à condition que le TextBox4 soit rempli et que la cellule C53 soit également complétée. Si vide un MessagBox apparaîtra.

je pense que le problème vient de la Cellule C53 mais comment y remédier ?

Merci.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  With Sheets("Feuil1")
    If .TextBox4.Value = "" Then
      MsgBox "Veuillez saisir le numéro d'action de progrès", vbCritical, "ATTENTION ..."
      Cancel = True
      Exit Sub
    End If
    If Target.Address = "$C$53" Then
        If UCase(Target.Value) = "" Then
        MsgBox "L'impact sur la Sécurité Sanitaire des Aliments doit OBLIGATOIREMENT être complété", vbCritical, "ATTENTION ..."
        Cancel = True
        Exit Sub
        End If
  End With
  Cancel = False
End Sub
19test.zip (14.48 Ko)

Bonjour,

J'ai supprimé le IF avec Ucase ="" car ça ne sert à rien de mettre en majuscules du vide et remplacé par Range("c53").Value = "" , ça fonctionne.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  With Sheets("Feuil1")
    If .TextBox4.Value = "" Then
      MsgBox "Veuillez saisir le numéro d'action de progrès", vbCritical, "ATTENTION ..."
      Cancel = True
      Exit Sub
    End If
           If Range("c53").Value = "" Then
        MsgBox "L'impact sur la Sécurité Sanitaire des Aliments doit OBLIGATOIREMENT être complété", vbCritical, "ATTENTION ..."
        Cancel = True
        Exit Sub
        End If

  End With
  Cancel = False
End Sub

A+

Merci,

Ok ça fonctionne.

Par contre est-il possible quand ouvrant la première fois cet enregistrement, les champs concernés (TextBox4 et cellule C53) soient vides ?

Pourquoi ? Cette obligation permettrait l'ouverture du document avec ces champs vides car sinon je serai dans l'obligation de les compléter ce qui ne servirait à rien d'intégrer cette obligation puisque les gens ouvriraient pour la première ce document mais avec ces champs déjà complétés et moi je veux qu'ils soient vides.

Merci.

Bonjour,

Pas testé mais je pense que ça doit fonctionner :

Private Sub Workbook_Open()
    Sheets("Feuil1").TextBox4.Value = ""
    Sheets("Feuil1").Range("C53").Value = ""
End Sub

Cette macro se déclenche à l'ouverture du fichier, il faut la placer dans ThisWorkbook comme ta macro BeforeSave.

A+

OK merci tout est parfait. Et désolé pour le retard concernant ma réponse.

Rechercher des sujets similaires à "enregistrement condition"