Protection feuille - plus de script

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

S

sbsb

Guest
Bonjour,

Voilà, j'ai un script permettant à partir d'un code postal d'établir une liste de ville dans une autre cellule correspondant à ce code postal.

Seulement, quand j'active la protection de la feuille, le script ne marche plus.

J'ai fais quelques recherches mais sans résultat.

Quelqu'un aurait une idée ?

Merci, par avance
 
Re : Protection feuille - plus de script

Bonjour,

je suppose que ton code modifie une ou des cellules, si c'est le cas il faut également que la protection soit faite par le code en utilisant la methode "Protect" avec l'argument "UserInterfaceOnly" à true, comme dans l'exemple ci dessous à placer dans le module de "ThisWorkbook" :

Code:
Private Sub Workbook_Open()
Sheets(1).Protect "toto", UserInterfaceOnly = True
End Sub

bon après midi
@+
 
Re : Protection feuille - plus de script

Bonjour

edit pas rafraichi à temps (Bonjour Pierrot93)

Code:
Private Sub Workbook_Open( )
Dim wSheet As Worksheet 
For Each wSheet In Worksheets 
wSheet.Protect Password:="Secret", UserInterFaceOnly:=True 
Next wSheet
End Sub
 
Re : Protection feuille - plus de script

Bonjour,

J'ai essayé les deux solutions mais sans résultat.

En F6 je saisie un code postale et quand je tape sur "Entrée", en G6 je dois avoir soit une ville, soit une liste de villes correspondantes au code postal.

Quand la protection de la feuille n'est pas activée ça marche, mais je l'active seule la dernière ville du code postal concerné s'affiche (Plus de liste déroulante).

Voici le code du module "CP"
Code:
Option Explicit

Sub ListeRechercheV()
Dim MyArray(0 To 762) As String
Dim Cell As Range
Dim CodeP As Range
Dim WSSource As Worksheet
Dim WSCible As Worksheet
Dim i As Integer
Dim ii As Integer
Dim iii As Integer

Set WSSource = Sheets("CP")
Set CodeP = Range("E6")

ii = 0
    For Each Cell In CodeP
        For i = 1 To 763
            If Cell.Value = "" Then Exit Sub
            If Cell.Value = WSSource.Cells(i, 1) Then
            MyArray(ii) = MyArray(ii) & ", " & WSSource.Cells(i, 2).Value
            Cell.Offset(0, 1).Value = WSSource.Cells(i, 2)
            iii = iii + 1
    End If
        Next i
            If MyArray(ii) = "" Then
            MsgBox "Pas de Ville avec ce code Postal : " & Cell.Value, vbCritical
            Exit Sub
            End If
    With Cell.Offset(0, 1).Validation
        .Delete
        .Add Type:=xlValidateList, _
        Operator:=xlBetween, _
        AlertStyle:=xlValidAlertStop, _
        Formula1:=MyArray(ii)
    End With
    If iii > 1 Then
    Cell.Offset(0, 1).Value = ""
    End If
    MyArray(ii) = ""
    ii = 0
    iii = 0
    Next Cell
End Sub

et voici le code de la feuille "Facture"
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("E6")) Is Nothing Then
On Error Resume Next
If Target.Value = "" Then
Target.Offset(0, 1).Validation.Delete
Else
ListeRechercheV
End If
End If
End Sub

Je vous remrcie par avance de l'aide que l'on pourrait m'accorder en espèrant ne pas être un boulet.🙂

A+
 
Re : Protection feuille - plus de script

Re, bonjour Staple

je comprends plus très bien où se situe le problème, dans ton premier post tu parlais de l'exécution d'un "Sript" et maintenant tu dis :

En F6 je saisie un code postale et quand je tape sur "Entrée", en G6 je dois avoir soit une ville, soit une liste de villes correspondantes au code postal.

si tu veux pouvoir modifier une cellule sur une feuille protégée tu "dévéroulles" la cellule en question. Click droit => format de cellule => onglet protection, tu décoches "vérroullé".

@+
 
Re : Protection feuille - plus de script

Bonjour,

Pour bien expliquer, je suis en train de faire un fichier de facturation automatisé. Et j'ai utilisé un code (celui qui est dans le précédent message) pour faire en sorte que quand on saisi le code postal dans une cellule, une liste déroulante se met en place dans la cellule "ville" car parfois pour un code postal il y a plusieurs villes.

Les cellules en question ("code postal", "ville") sont déjà dévérouillées. J'ai vérouillé seulement les cellules contenant des formules.

C'est pour ça que je ne comprends pas pourquoi quand je protège la feuille, la cellule "ville" se fige sur la dernière ville concernant code postal, au lieu de me faire une zone de liste déroulante comme elle le fait quand la feuille n'est pas protégée.

De plus, pour répondre à la question de Staple1600, je ne suis pas l'utilisateur final de cette application.

J'espère avoir été un peu plus clair. Merci en tout cas pour votre aide.

a+
 
Re : Protection feuille - plus de script

Bonsoir


Une intuition en passant

... cellule "ville" se fige sur la dernière ville concernant code postal, au lieu de me faire une zone de liste déroulante comme elle le fait quand la feuille n'est pas protégée.
Si ta zone de liste déroulante (vient de la BO Formulaires)

clic-droit sur celle-ci Format de controle /Protection/Vérouillé

doit etre coché non?

Si oui le problème peut venir de la .(peut-etre?)
 
Re : Protection feuille - plus de script

Bonsoir,

C'est bon j'ai trouvé ! J'avais juste à rajouter au début du code :
Code:
ActiveSheet.Unprotect
et à la fin du code :
Code:
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True

Comme quoi j'avais pas si bien cherché. En tous cas je vous remercie de m'avoir aidé.

A+ (J'espère qu'à mon tour je pourrais aider d'autres personnes).
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
1 K
Retour