Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Cellule en couleur - Plantage quand feuille protégée

  • Initiateur de la discussion Initiateur de la discussion olivepao
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

olivepao

XLDnaute Occasionnel
Bonjour à tous

Dans un formulaire, je teste si tous les champs sont remplis avant enregistrement.

Tout fonctionne nickel. Je viens d'ajouter une intruction pour coloriser la première cellule non remplie.

Si la feuille est non protégée tous fonctionne mais si je protège la feuille, ce qui doit être je me retrouve avec une erreur 1004 Impossible de définir la propriété ColorIndex de la Class Interior".

Voici le code :


Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  '
  ' Macro exécutée à l'enregistrement du fichier
  '
  If VerifOK = False Then
        
        Cancel = True
        
        Exit Sub
  
  End If

  Call Sauve   ' <-- Macro pour enregistrer sous
  
  SaveAsUI = False ' <-- Empêche l'ouverture (inutile) de la boîte de dialogue "Enregistré sous . . ."
  
  Cancel = True

End Sub


Code:
Function VerifOK()
'
' Macro exécutée à l'enregistrement du fichier qui teste le remplissage des cellules
'
Dim Remplace As Worksheet, ChampRemplir As Variant, TexteMessage As Variant, i As Integer ' <-- Définition des variables

VerifOK = True  ' <-- Met à vrai le retour de la fonction

Set Remplace = Worksheets("Remplacement")  ' <--  Vérifie si tout est rempli

ChampRemplir = Array("B3", "B6", "B8", "B10", "B11", "B14", "B16", "B25", "B33", "G33") ' <-- Cellules à remplir obligatoirement

TexteMessage = Array("A remplir 1", _
                            "A remplir 2  ", _
                            "A remplir 3", _
                            "A remplir 4", _
                            "A remplir 5", _
                            "A remplir 6", _
                            "A remplir 7", _
                            "A remplir 8", _
                            "A remplir 9", _
                            "Date de la demande") ' <-- Texte du champ oublié
                            
For i = 0 To UBound(ChampRemplir) ' <-- Teste les 9 éléments du classeur, remplis ou pas remplis (boucle)
        If Remplace.Range(ChampRemplir(i)) = "" Or _
            Remplace.Range(ChampRemplir(i)) = 0 Then ' <-- Teste si les cellules à remplir obligatoirement, le sont !
                         MsgBox "Vous avez oublié de saisir le champ :     " + Chr$(13) + Chr$(13) _
                         & TexteMessage(i) + Chr$(13) + Chr$(13) _
                         & "Veuillez le saisir svp ! !" + Chr$(13) + Chr$(13), _
                         vbOKOnly + vbExclamation, "                      -  ERREUR DE SAISIE  -          "       ' <-- Mise en forme du message erreur
                         
                         Range(ChampRemplir(i)).Select ' <-- Position sur la première cellule non remplie
                         
                         Range(ChampRemplir(i)).Interior.ColorIndex = 5  ' <-- La cellule non remplie est colorisée en bleu 

VerifOK = False

      
Exit For

        End If

  Next
  
End Function

Si quelqu'un ou quelqu'une à une idée, je ne trouve pas mon erreur. Merci
 
Re : Cellule en couleur - Plantage quand feuille protégée

Bonjour

dans ta macro, avant le mises à jour, il te faut deproteger ta feuille et la reproteger à la fin de la macro

Sheets("Mafeuille").unprotect password:="MonMotDePasse"
sheets("Mafeuille").protect password:="MonMotDePasse"
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
547
Réponses
2
Affichages
809
Réponses
3
Affichages
228
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…