Fonction personnalisé qui ne fonctionne pas

  • Initiateur de la discussion Initiateur de la discussion Carnage029
  • 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 !

Carnage029

XLDnaute Occasionnel
Bonjour à tous, j'ai crée une petite fonction personalisé pour récupérer VRAI ou FAUX dans une cellule de ma feuille

la fonction es la suivante

Code:
Function is_protected_or_not(current As Sheets)

If current.ProtectContents = True Then
    is_protected_or_not = True
    Else: is_protected_or_not = False
End If


End Function

pourtant dans la case de mon classeur ou je met : is_protected_or_not("Clients") il m'affiche un magnifique #VALEUR

(Ma feuille s'appelle Clients)

Merci à vous de votre aide
 
Re : Fonction personnalisé qui ne fonctionne pas

Résolu par

=is_protected_or_not("Clients") dans la cellule

et comme fonction

Code:
Function is_protected_or_not(current As String)

If Sheets(current).ProtectContents = True Then
    is_protected_or_not = True
    Else: is_protected_or_not = False
End If


End Function
 
Re : Fonction personnalisé qui ne fonctionne pas

Bonjour,

peut être en modifiant ceci :
Code:
Function is_protected_or_not(current As Sheets)

par cela :
Code:
Function is_protected_or_not(current As Worksheet)

bon après midi
@+

Edition : ta solution est meilleure, tu ne peux pas passer un objet comme ca.......
 
Dernière édition:
Re : Fonction personnalisé qui ne fonctionne pas

En revanche j'ai un soucis, ma fonction me retourne toujours dévérouilé (oui je l'ai un peu modifié...)

Code:
Function is_protected_or_not(current As String)

If Sheets(current).ProtectContents = True Then
    is_protected_or_not = "VEROUILÉ"
    Else: is_protected_or_not = "DEVEROUILÉ"
End If


End Function

Qui se fait appeller comme ça :

Code:
Sub protect_clients()


If ActiveSheet.ProtectContents = True Then
    
    ActiveSheet.Protect Password:="password123", DrawingObjects:=True, Contents:= True, Scenarios:=True

    If MsgBox("Vous êtes sur le point de désactiver la protection de la feuille" & " Clients, cette feuille permet d'ajouter, de supprimer ou de modifier les informations concernant un client. Pour valider appuyez sur OUI, pour revenir en arrière sur NON ", vbYesNo + vbInformation, "Confirmation - Désactiver la protection de la feuille client") = vbYes Then
        
        ActiveSheet.Unprotect Password:="password123"
        ActiveSheet.Range("E4") = is_protected_or_not(ActiveSheet.Name)
        
    End If

    ElseIf MsgBox("Vous êtes sur le point de réactiver la protection de la feuille" & " Clients, cette feuille permet d'ajouter, de supprimer ou de modifier les informations concernant un client. Pour valider appuyez sur OUI, pour revenir en arrière sur NON ", vbYesNo + vbInformation, "Confirmation - Réactiver la protection de la feuille client") = vbYes Then
        
        ActiveSheet.Range("E4") = is_protected_or_not(ActiveSheet.Name)
        ActiveSheet.Protect Password:="password123", DrawingObjects:=True, Contents:= True, Scenarios:=True
        
    
End If
 
Re : Fonction personnalisé qui ne fonctionne pas

Re,

comprends pas trop ton code.... avant d'appeler ta fonction tu déprotéges ta feuille... donc pourquoi appeler cette fonction....
Code:
ActiveSheet.Unprotect Password:="password123"
        ActiveSheet.Range("E4") = is_protected_or_not(ActiveSheet.Name)
 
Re : Fonction personnalisé qui ne fonctionne pas

Pour mettre à jour la valeur de ma cellule E4 à DEVEROUILÉ

par contre ça marche pas pour le VEROUILÉ, je dois agir sur une feuille verrouilé pour actualiser la valeur...

y'a du verouil-ception dans l'air là, 🙁
 
Re : Fonction personnalisé qui ne fonctionne pas

Bon en trichant un peu, (beaucoup même) on obtient ça

Code:
Sub protect_clients()


If ActiveSheet.ProtectContents = True Then
    
    ActiveSheet.Protect Password:="password123", DrawingObjects:=True, contents:=True, Scenarios:=True

    If MsgBox("Vous êtes sur le point de désactiver la protection de la feuille" & " Clients, cette feuille permet d'ajouter, de supprimer ou de modifier les informations concernant un client. Pour valider appuyez sur OUI, pour revenir en arrière sur NON ", vbYesNo + vbInformation, "Confirmation - Désactiver la protection de la feuille client") = vbYes Then
        
        ActiveSheet.Unprotect Password:="password123"
        ActiveSheet.Range("E4").Value = is_protected_or_not(ActiveSheet.Name)
        MsgBox (ActiveSheet.Name)
        
    End If

    ElseIf MsgBox("Vous êtes sur le point de réactiver la protection de la feuille" & " Clients, cette feuille permet d'ajouter, de supprimer ou de modifier les informations concernant un client. Pour valider appuyez sur OUI, pour revenir en arrière sur NON ", vbYesNo + vbInformation, "Confirmation - Réactiver la protection de la feuille client") = vbYes Then
        ActiveSheet.Range("E4").Value = "VEROUILÉ"
        ActiveSheet.Protect Password:="password123", DrawingObjects:=True, contents:=True, Scenarios:=True
        
        
    
End If


End Sub
 
Dernière édition:
- 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
4
Affichages
586
Réponses
6
Affichages
638
Retour