Insertion de lignes pré-remplies en feuille protégée

mveroniquefr

XLDnaute Nouveau
Bonjour,
Tout d’abord merci pour ce forum et l’aide de tous !
Mon problème est le suivant : je travaille sur un plan d’accréditation, dont je veux que certaines cellules prédéfinies ne soient pas modifiables, et par contre d’autres cellules elles doivent être complétées par des tierces personnes. J’ai donc procédé au blocage de ces cellules par une protection de feuille. Jusque là tout va bien.
MAIS :
A ce plan initial doit être ajouté une ligne par personne à accréditer. J’ai, grâce à votre forum, ajouté une macro qui me permet d’insérer une ligne identique à celle où l’on était initialement positionné (déjà complétée et non vierge). La macro est la suivante :
Sub insertionLigne()
With ActiveCell
.EntireRow.Insert xlShiftDown 'Insert une ligne au dessus
.EntireRow.Copy ' Copie la ligne active
With .Offset(-1).EntireRow 'Passe les formats et formules à la ligne insérée
.PasteSpecial xlPasteFormats
.PasteSpecial xlPasteFormulas
End With
Application.CutCopyMode = False
End With
End Sub
Le problème maintenant est qu’en mode de feuille protégée, il semble impossible d’appliquer la macro (Run time error 1004). Et si je n’applique pas de macro (en insérant une ligne de façon normale), cette ligne insérée est vierge et n’autorise pas les tierces personnes à compléter les cellules bloquées. J’ai par ailleurs tenté d’ajouter la macro suivante, sans succès :
Sub Test3()
ActiveSheet.Unprotect
Selection.SpecialCells(xlCellTypeBlanks).Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True
End Sub
Petite précision : je ne peux à l’avance créer le nombre de lignes requis, car le nombre de personnes à accréditer par catégorie varie d’un évènement à l’autre.
Pouvez-vous m’aider ?:confused:
Merci beaucoup !
 

Paritec

XLDnaute Barbatruc
Re : Insertion de lignes pré-remplies en feuille protégée

bonjour mveroniquefr le forum et bienvenu
tu ajoutes
activesheet.unprotect au début et à la fin de ta macro
activesheet.protect et ce sera bon je pense
a+
papou

Code:
Sub insertionLigne()
[COLOR=Red]activesheet.unprotect[/COLOR]
    With ActiveCell


Application.CutCopyMode = False
    End With
[COLOR=Red]Activesheet.protect[/COLOR]
End Sub
 
Dernière édition:

mveroniquefr

XLDnaute Nouveau
Re : Insertion de lignes pré-remplies en feuille protégée

Merci beaucoup pour cette réponse qui effectivement permet le rajout de ligne. Le problème c'est qu'il est demandé le password, et que si je communique celui-ci, ils peuvent ensuite débloquer totalement la feuille et accéder ainsi à toutes les cellules...
 

Paritec

XLDnaute Barbatruc
Re : Insertion de lignes pré-remplies en feuille protégée

Re mveroniquefr,
non pas du tout, tu peux le mettre dans la macro et mettre un mot de passe pour 80% des utilisateurs cela sera un blocage
tu rajoutes
activesheet.unprotect password:="Ton mot de passe"

et en bas
activesheet.protect password:="Ton mot de passe"
et le fichier est protégé comme au début de ta macro
a+
papou :)
 

mveroniquefr

XLDnaute Nouveau
Re : Insertion de lignes pré-remplies en feuille protégée

Papou merci merci merci... ça marche !
Par contre, comme une femme n'est jamais vraiment satisfaite :)... je ne peux supprimer de ligne en mode feuille protégée. Pourtant lors de la protection, j'ai bien coché la possibilité de suppression de lignes. Une solution ? Encore mille mercis !;)
 

Paritec

XLDnaute Barbatruc
Re : Insertion de lignes pré-remplies en feuille protégée

Bonsoir mveronique,fr le forum
Très franchement je suis malheureusement presque sur que non, par contre tu veux supprimer des ligne particulières?
si ce sont des lignes identifiables facilement on peut de la même manière, déverrouiller la feuille, les supprimer et revérouiller.
Mais sans fichier je ne peux hélas pas t'en dire plus
a +
bonne soirée
Papou :)
 

mveroniquefr

XLDnaute Nouveau
Re : Insertion de lignes pré-remplies en feuille protégée

Merci Papou, en fait ce que je voulais c'était qu'ils puissent supprimer une ligne en cas d'erreur, ou par exemple l'inscription d'une personne à accréditer et qui finalement ne participe pas. Mais j'ai finalement trouvé la solution qui était toute simple, avec la formule suivante:
Sub suppressionLigne()
ActiveSheet.Unprotect Password:="ACCRED"
With ActiveCell
.EntireRow.Delete
End With
ActiveSheet.Protect Password:="ACCRED"
End Sub
Encore mille mercis de m'avoir aidée et dédié de votre temps. Je vous souhaite une excellente journée, et à bientôt peut-être !
 

Discussions similaires

Réponses
2
Affichages
209

Statistiques des forums

Discussions
312 927
Messages
2 093 675
Membres
105 781
dernier inscrit
Dominique G.