Empecher l'enregistrement SI

Résolu
Bonjour à tous,

Après m'être baladé sur divers sujets je me décide à poser ma question car je suis un peu perdu ...

Je souhaiterais empêcher un utilisateur d'enregistrer son fichier Excel si il y a des cellules en A dont le fond est rouge. Le fond des cellules en A peut être teint en rouge selon une mise en forme conditionnelle.

J'ai donc pompé quelques petites lignes de code sur ce forum que j'ai mis à ma sauce et voilà ce que ça donne :


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
For i = 7 To 2000
If Worksheets("Modifier le libellé").Range("A" & i).Interior.Color = 255 Then
MsgBox "La référence de la ligne " & i & " n'est pas renseignée": Cancel = True
End If
Next i
End Sub

Jusque là, tout va à peu près bien.
Le problème c'est que quand j'enregistre mon classeur et que je fais exprès de mettre une cellule A en rouge (pour ce faire, il suffit de ne pas respecter la mise en forme conditionnelle qui est "si B et C ne sont pas vides et A est vide alors ==> je teint ma cellule A en rouge" !) et bein mon classeur s'enregistre très bien (l'effronté !) lorsque je clique sur la petite disquette ou que j'enregistre sous.

J'espère avoir été assez claire, si ça ne l'est pas, je vous invite à jeter un coup d'oeil à mon fichier excel : https://www.cjoint.com/?0GvqZ0q7NFU

Merci d'avance pour votre aide !

Ecrelinf

1 réponse

  1. Bonjour,

    A voir:

    http://www.excelabo.net/excel/desactiver_enregistrement_classeur
    1
    1. Merci pour le coup de main f894009.
      Cependant, je ne suis pas un foudre de guerre en VBA et je me demande dans quelle macro je dois placer mon "If" ?

      Merci pour ton aide en tout cas ! :)
      0
    2. Bonjour,

      Ai teste ce matin et:

      1/ il y a deux erreurs dans les codes desactivation et activation touche ctrl+s (raccourcis clavier sauvegarde)
      correction:
      'desactive le raccourci clavier Ctrl+S,
      Application.OnKey "^s", ""

      ''rétabli le raccourci clavier Ctrl+S
      Application.OnKey "^s"

      2/ Petit probleme fermeture excel sur click croix fenetre excel2007 et + (je vais regarder pourquoi)

      3/ pour vous il faudra faire vos tests de cellules non renseignees
      dans ces deux evenements:

      Private Sub Workbook_BeforeClose()
      Private Sub Workbook_BeforeSave()
      0
    3. Bonjour f8904009,

      J'ai essayé avec les macros proposées, et ça ne semble pas fonctionner chez moi.
      En effet, le fichier s'enregistre toujours très bien, malgré que mes cases soit rouges :/

      je vous transmets le fichier avec les nouvelles maccros.
      https://www.cjoint.com/?0GxmxMNxMuG

      Merci pour votre aide,
      Ecrelinf
      0
    4. Bonjour,

      J'ai recupere le fichier pour modif, mais d'entree les tests couleurs sur MFC ne marche pas, il faut mettre dans le test l'equivalant de l'equation que pour la MFC. Ensuite dans les evenements:
      Private Sub Workbook_BeforeClose()
      Private Sub Workbook_BeforeSave()
      il fallait enlever les lignes de code qui permetait de sauvegarder dans le test de couleur(meme si pas ok pour le moment)

      Je vous arrange ca

      A+
      0