lilou315
Messages postés3Date d'inscriptionjeudi 22 septembre 2011StatutMembreDernière intervention22 septembre 2011
-
22 sept. 2011 à 11:54
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 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
A voir également:
[Déplacé .NET -> VBA] Propriété bordure non reconnue sur une feuille protégée
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018209 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
lilou315
Messages postés3Date d'inscriptionjeudi 22 septembre 2011StatutMembreDernière intervention22 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 ?
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 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.