Erreur .validation avec feuille protégée VBA
Résolu
123Martin
Messages postés
6
Statut
Membre
-
f894009 Messages postés 17413 Statut Membre -
f894009 Messages postés 17413 Statut Membre -
Bonjour,
J'ai un problème avec un code VBA qui crée une liste de validation sur mon fichier. Ma feuille doit être protégée pour les donner accès aux utilisateurs seulement aux cellules où il y a une validation à choisir (cellules A10:A42). Lorsque je met la protection sur la feuille, mon code VBA me donne une erreur dans ma boucle With à la ligne qui commence par .Add Type
Si j'enlève la protection, le code fonctionne comme désiré.
La plage source de la validation n'est pas protégée. (rdp!'A4:ADernièrelignenonvide).
Pouvez-vous me donner un coup de main svp.
Merci à l'avance !!
J'ai un problème avec un code VBA qui crée une liste de validation sur mon fichier. Ma feuille doit être protégée pour les donner accès aux utilisateurs seulement aux cellules où il y a une validation à choisir (cellules A10:A42). Lorsque je met la protection sur la feuille, mon code VBA me donne une erreur dans ma boucle With à la ligne qui commence par .Add Type
Si j'enlève la protection, le code fonctionne comme désiré.
La plage source de la validation n'est pas protégée. (rdp!'A4:ADernièrelignenonvide).
Pouvez-vous me donner un coup de main svp.
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim LCRN As Integer
Dim Range As Range
Dim ShtF As Worksheet
Dim ShtC As Worksheet
Set ShtF = ThisWorkbook.Sheets("Feuil1")
Set ShtC = ThisWorkbook.Sheets("rdp")
LCRN = ShtC.Range("$A$4").End(xlDown).Row + 1
Set Range = ShtC.Range("$A4:A" & LCRN)
With ShtF.Range("A10:A42").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="='" & ShtC.Name & "'!" & Range.Address
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
End Sub
Merci à l'avance !!
A voir également:
- Erreur .validation avec feuille protégée VBA
- Comment faire un livret avec des feuilles a4 - Guide
- Bruler feuille de laurier - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Impossible d'utiliser ce numéro de téléphone pour la validation - Forum Gmail
- Erreur 3005 france tv - Forum TV & Vidéo
5 réponses
Parce que je dois avoir une liste de validation avec une source de données variables. La liste se modifie avec l'ajout de lignes dans l'onglet 'rdp'.
Bonjour,
Vous definissez une formule ici azerty avec quelque chose ex:
=rdp!A4:A5
vous selectionnez toutes vos validation de donnees et dans liste vous mettez =azerty
et vous remplacez votre code par celui-ci:
il cree une formule azerty avec ce qu'il y a dans rdp!A4:Ax x etant la dernier cellule non vide colonne A
Il est evident que vous pouvez mettre changer le nom de la formule.
Mefiez vous des variables avec le meme nom que les mots reserves d'excel ou autre ex: Range
A+
Vous definissez une formule ici azerty avec quelque chose ex:
=rdp!A4:A5
vous selectionnez toutes vos validation de donnees et dans liste vous mettez =azerty
et vous remplacez votre code par celui-ci:
il cree une formule azerty avec ce qu'il y a dans rdp!A4:Ax x etant la dernier cellule non vide colonne A
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim LCRN As Integer
Dim Range As Range
Dim ShtC As Worksheet
Set ShtC = ThisWorkbook.Sheets("rdp")
LCRN = ShtC.Range("$A$4").End(xlDown).Row + 1
Set Range = ShtC.Range("$A4:A" & LCRN)
'delete de la formule
ActiveWorkbook.Names("azerty").Delete
'cree la formule pour les liste de validation
ActiveWorkbook.Names.Add Name:="azerty", RefersToR1C1:="=rdp!" & Range.Address(ReferenceStyle:=xlR1C1)
End Sub
Il est evident que vous pouvez mettre changer le nom de la formule.
Mefiez vous des variables avec le meme nom que les mots reserves d'excel ou autre ex: Range
A+
Bonjour,
Je n'ai pas testé la proposition de f894009.
Sinon tu peux déprotèger et re-protèger ta feuille avec unprotect et protect (voir aide pour syntaxe avec ou sans mot de passe).
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Je n'ai pas testé la proposition de f894009.
Sinon tu peux déprotèger et re-protèger ta feuille avec unprotect et protect (voir aide pour syntaxe avec ou sans mot de passe).
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question