[Déplacé .NET -> VBA] Propriété bordure non reconnue sur une feuille protégée [Résolu]

Messages postés
3
Date d'inscription
jeudi 22 septembre 2011
Statut
Membre
Dernière intervention
22 septembre 2011
- - Dernière réponse : bigfish_le vrai
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
- 23 sept. 2011 à 11:04
Bonjour à tous,
Je suis en train de créer un formulaire et j'aimerais que des bordures apparaissent sur une certaine cellule lorsque l'on sélectionne une certaine valeur d'une combobox.

Voici ma fonction pour mettre une bordure sur une cellule (pompée d'une macro)

Sub Bordures(cell As String)
'Mettre des bordures à une cellule
ActiveSheet.Range(cell).Select

With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With

End Sub

Ce code marche très bien lorsque la feuille n'est pas protégée, par contre lorsque l'utilisateur fait la même chose (donc sur le formulaire en mode protégé), il apparait cette erreur : "Erreur d'exécution 1004. Impossible de définir la propriété LineStyle de la classe Border".
la cellule en question est déverrouillée donc normalement on peut lui apporter des modifications.

Merci de votre aide

Alice
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
3
Date d'inscription
jeudi 22 septembre 2011
Statut
Membre
Dernière intervention
22 septembre 2011
3
Merci
Finalement c'est juste un paramètre à ajouter à la protection de la feuille pour permettre le changement de format de la cellule.

ActiveSheet.Protect Password:="mdp", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 190 internautes nous ont dit merci ce mois-ci

Commenter la réponse de lilou315
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212
0
Merci
Bonjour,

Avant d'aller plus loin :
1) tu ne développes pas sous VB.Net (la présente section), mais sous VBA (Excel). Prends dorénavant le plus grand soin au choix de la section dans laquelle tu "postes", s'il te plait .
2) ce forum met à disposition des balises codes. Elles permettent de présenter un code avec son indentation (mise en forme) et rend moins "tortueuse" la lecture du code présenté. Utilise-les s'il te plait.
3) je comprends mal que ton code se réfère partout à ActiveCell alors que tu as passé un paramètre Cell à ta sub !
On verra le reste ensuite.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
3
Date d'inscription
jeudi 22 septembre 2011
Statut
Membre
Dernière intervention
22 septembre 2011
0
Merci
1) Oui excuse moi c'est la première fois que je met un poste, je l'ai mis là où j'ai vu un problème similaire en faisant ma recherche.

2)Idem que 1, c'est la première fois que je poste sur le site, je n'avais pas remarqué les balises

3) Cell est une chaine de caractère par exemple "G13" qui permet de pouvoir appliquer cette fonction à différentes cellules. Je ne vois pas où mon code se réfère à ActiveCell ?
Commenter la réponse de lilou315
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
8
0
Merci
Salut,

ce qui suit fait la même chose :

Sub bordure(ByRef Cellule As String)
With ActiveSheet.Range(Cellule).Borders
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 0
End With
End Sub

note que la sélection ne sert à rien. Les sélections sont sources d'erreur de lenteur et d’épilepsie

enfin note que cell est très proche du mot réservé Cells et que cela prête à confusion.

A+
Commenter la réponse de bigfish_le vrai