Permettre aux utilisteurs de modifier des plages

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

T

thierry79

Guest
Bonjour
je voudrai savoir comment écrire la protection "Permettre aux utilisateurs de modifier des plages" en VBA.
je m"explique:
je vais créer des listes avec menus déroulants et je voudrai que les droits dans d'autres cellules soit accordé automatiquement à la personne affichée dans la cellule du menu déroulant.
merci d'avance😎
 
Re : Permettre aux utilisteurs de modifier des plages

Bonjour, Thierry, Michel 😉

Loin d'être à l'aise avec VBA, voici comment je procéderais :
1° réaliser la déprotection des cellules attribuées au premier nom en activant l'enregistreur de macros (le module sera créé automatiquement)
2° tester, et si ça coince... (Aller à 8°)
3° initialiser une Private Sub Worksheet_Change(ByVal Target As Range) dans le code de la feuille concernée, avec un select case sur les items de la liste déroulante
4° tester, et si ça coince... (Aller à 8°)
5° appeler dans cette procédure le code de la macro créée par l'enregistreur dans le module
6° tester, et si ça coince... (Aller à 8°)
7° dupliquer le code du module, et en modifier les références aux cellules pour chaque nom de la liste déroulante.
8° tester, et si ça coince... (Aller à 8°)
6° revenir en joignant ce qui a été fait, comme le suggère MJ13.
 
Re : Permettre aux utilisteurs de modifier des plages

Bonjour
DSL MJ13 j'y penserai la prochaine fois.
Merci Victor21 pour le coup de main
J'ai essayé mais pas de résultat concluant. Regarde c'est la macro 1 et 2
Sinon j'ai trouvé ça dans l'aide d'Excel. C'est pas mal, la protection se fait mais il n'y pas de variable pour les autorisations. si t'as une idée...
---------------------------------
Sub UseAllowEditRanges()

Dim wksOne As Worksheet
Dim wksPassword As String

Set wksOne = Application.ActiveSheet

' Unprotect worksheet.
wksOne.Unprotect

wksPassword = InputBox("Enter password for the worksheet")

' Establish a range that can allow edits
' on the protected worksheet.
wksOne.Protection.AllowEditRanges.Add _
Title:="Classified", _
Range:=Range("A1:A4"), _
Password:=wksPassword

' Notify the user
' the title and address of the range.
With wksOne.Protection.AllowEditRanges.Item(1)
MsgBox "Title of range: " & .Title
MsgBox "Address of range: " & .Range.Address
End With

End Sub
-----------------------
merci d'avance

ps
je ne sais pas si la pièce jointe est vraiment jointe, donc dsl si elle est en double
 

Pièces jointes

- 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
2
Affichages
995
M
  • Question Question
Réponses
2
Affichages
1 K
MiaouLeLion
M
N
Réponses
2
Affichages
2 K
Novice38
N
N
Réponses
4
Affichages
2 K
Novice38
N
S
Réponses
8
Affichages
5 K
Sofiane Boukecha
S
U
Réponses
5
Affichages
2 K
USER2112
U
M
  • Question Question
Réponses
19
Affichages
3 K
M
Retour