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

Résolu
lilou315 Messages postés 3 Date d'inscription jeudi 22 septembre 2011 Statut Membre Dernière intervention 22 septembre 2011 - 22 sept. 2011 à 11:54
bigfish_le vrai Messages postés 1835 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

4 réponses

lilou315 Messages postés 3 Date d'inscription jeudi 22 septembre 2011 Statut Membre Dernière intervention 22 septembre 2011
22 sept. 2011 à 14:58
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
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 sept. 2011 à 12:24
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
0
lilou315 Messages postés 3 Date d'inscription jeudi 22 septembre 2011 Statut Membre Dernière intervention 22 septembre 2011
22 sept. 2011 à 13:51
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 ?
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
23 sept. 2011 à 11:04
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+
0
Rejoignez-nous