Besoin d'aide VBA svp

Fermé
menzo13140 - 12 avril 2014 à 22:53
 *ZaZou* - 16 avril 2014 à 21:50
Bonsoir,
Petite question mais assez compliqué pour moi.
J'aimerai savoir, s'il est possible sous excel/VBA de faire ceci :
J'ai mit un bouton : "case à cocher" (Contrôle ActiveX) et, j'aimerai que lorsque je coche cette case, la cellule que je définis est barrée, c'est à dire avec 2 diagonales dans la cellule.
De couleur rouge si possible.

Cela est-il faisable SVP ?
Je suis un peu perdu sur tous les forums et ne trouve pas réponse à ma question.

Merci d'avance,
Amateur en VBA

2 réponses

f894009 Messages postés 17191 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2024 1 707
13 avril 2014 à 10:20
Bonjour,

code a mettre dans le VBA de la feuille ou il y a la case a cocher, adaptez la cellule

Private Sub CheckBox1_Click()
If CheckBox1 Then
With Range("C5").Borders(xlDiagonalDown)
.LineStyle = xlContinuous
.Color = -16776961
.TintAndShade = 0
.Weight = xlThick
End With
With Range("C5").Borders(xlDiagonalUp)
.LineStyle = xlContinuous
.Color = -16776961
.TintAndShade = 0
.Weight = xlThick
End With
Else
With Range("C5")
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlEdgeLeft).LineStyle = xlNone
.Borders(xlEdgeTop).LineStyle = xlNone
.Borders(xlEdgeBottom).LineStyle = xlNone
.Borders(xlEdgeRight).LineStyle = xlNone
.Borders(xlInsideVertical).LineStyle = xlNone
.Borders(xlInsideHorizontal).LineStyle = xlNone
End With
End If

End Sub
0
Bonjour,

Je viens de tester cela marche nickel.
Par contre, quand je coche et décoche, cela change mes bordures de ma cellule (après décochage, je perds les bordures de ma cellule)
Une dernière question si je dois faire cela pour plusieurs cellules, je dois retaper le code ou bien je dois modifier le codage ? (c'est à dire par exemple de la cellule C5 à D55 ?)

En tous cas merci encore pour votre aide, cela est très sympa :-)
0
f894009 Messages postés 17191 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2024 1 707
13 avril 2014 à 11:05
Re,

Si seulement mettre croix sur plage C5:D55

Private Sub CheckBox1_Click()
If CheckBox1 Then
With Range("C5:D55").Borders(xlDiagonalDown)
.LineStyle = xlContinuous
.Color = -16776961
.TintAndShade = 0
.Weight = xlThick
End With
With Range("C5:D55").Borders(xlDiagonalUp)
.LineStyle = xlContinuous
.Color = -16776961
.TintAndShade = 0
.Weight = xlThick
End With
End If

End Sub
0
Merci cela marche parfaitement.
C'est vrai que j'aurai pu le faire seul lol dsl.
Par contre, quand je coche et décoche, cela change mes bordures de ma cellule (après décochage, je perds les bordures de ma cellule) comment, puis-je garder mon format de bordure de cellule ?

merci pour votre aide
0
f894009 Messages postés 17191 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2024 1 707
Modifié par f894009 le 13/04/2014 à 11:35
Re,

quand je coche et décoche, cela change ---->Si vous prenez le code Lien (#3) juste au dessus de votre dernier message,cela ne le fait plus
0
Merci, je dois rentrer le code Lien à quel niveau dans la VBA ?
Merci d'avance
0
f894009 Messages postés 17191 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2024 1 707
16 avril 2014 à 13:05
Bonjour,

fichier modifie, module de classe pour traiter les bouton option et case a cocher. Ai utilise un code de Lermite222-CCM, que j'ai adapte et modifie pour les Checkbox car erreur 459 ???

https://www.cjoint.com/?DDqnfb5RgdL
0