Incrire une diagonale

  • Initiateur de la discussion Initiateur de la discussion abc
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

abc

XLDnaute Impliqué
Bonjour,
je désire qu'une diagonale s'inscrive dans un plage de cellules A2😀5(par ex)
lorsque la valeur est supérieur à 10 ,sinon inscrit la valeur.
Cela fait un bon monent que je cherche mais en vain.
Si cela est possible en VBA.
Merci d'avance
 
Re : Incrire une diagonale

salut a tous

la solution de pierrot93 est beaucoup plus fun de mon point de vu

je m etait contenté d essayer de faire fonctionner celle proposer

mais celle la vraiment cool ca démontre aussi qu il y a plusieur facons

d aborder les probleme maintenant a toi de choisir laquelle tu veut de toute

les 2 fonctionnes bien celle de pierrot simplifie les choses et ce genre d

approche peut se reveler tres utiles dans l elaboration de code plus complexes

a +
 
Re : Incrire une diagonale

Bonsoir,

J'ai pas tout suivi et je vous prie de m'excuser par avance de venir tel un chien dans votre jeu de quilles mais une mise en forme conditionnelle avec bordure ?

Et oups 😉 j'aurais mieux fait de tourner ma langue 7 fois dans la bouche de mon cher et tendre : les diagonales sont désactivées dans les MFC 🙁

Qui aurait une petite *.xla pour pallier cet oubli de Billou ?


Sam
 
Re : Incrire une diagonale

Bonsoir à tous,
en fait mon but premier était de mettre une diagonale en gros trait et en rouge si la valeur de la cellule était supérieur à 10.
J'ai fait une macro pour avoir le code que j'ai combiné avec le même code de Pierrot93.Et là les problèmes ont commencé (voir le suivi des postes).
Bref ,j'ai la diagonale en noir et format standart.
Si quelqu'un à une proposition ,je suis toujours preneur.
A +
 
Re : Incrire une diagonale

Bonjour à tous
Ce code fonctionne chez moi avec Excel 2003
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
If Target < 10 Then
Target.Borders(xlDiagonalUp).LineStyle = xlNone
Else
With Target.Borders(xlDiagonalUp)
.LineStyle = xlContinuous
.ColorIndex = 3
.Weight = xlMedium
End With
End If
End If
End Sub

Bruno
 
Re : Incrire une diagonale

Salut abc, pierrot et cb60
dis abc tu as toujours ton probleme de couleur ? car mis a part ce que je demande a Pierrot un peu plus loin la retouche de cb60 fonctionne bien au niveau des couleurs
Dis Pierrot avec ce code que tu nous a fait et que cb60 a completer

If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
If Target < 10 Then
Target.Borders(xlDiagonalUp).LineStyle = xlNone
Else
Target.Borders(xlDiagonalUp).LineStyle = xlContinuous
End If
End If

comme tu le disait dans ton post a condition que cela concerne bien le target en cours et donc a l usage moi perso quand je saisie 15 par exemple au clavier dans une cellule pour terminer ma saisie je presse enter ou bien si ma prochaine saisie est tout juste a droite je presse tab et donc ton code s excute mais comme le target en cours ne contient pas de valeur
il ne se passe rien normale. Mi pour contourner ce probleme j avais mis en place une boucle qui reactualise les données de la colonne 1
avec ton code y at il un moyen de prendre en compte les parametre que j ai énumérer ci dessus ? car sur liste d une trentaine de ligne ton post ou le mien ne change pas grand chose par contre sur une liste de 2 ou 3000 lignes le mien va ramer (faudra ptete meme pedaler sous le bureau )

voila merci de votre attention a+
 
Re : Incrire une diagonale

Bonjour yojema
on c'est croisé sur le fil
Mon code fonctionne très bien,comme je l'ai dis plus haut je ne sais toujours pas pourquoi cela ne fonctionnait pas.Un paramètre,une autre version,une configuration différentes,une erreur de frappe qui ne me sautait pas au yeux
bref en résumé ca va
Merci du suivi
A +
 
Re : Incrire une diagonale

Bonsoir à tous,

désolé de ne pas avoir pu réintervenir plus tôt, mais j'étais en vacances... Et pas désolé de l'être.. lol

J'ai apporté de petites modifs au code afin de ne pas boguer, lors de l'effacement de plusieurs cellules ou accepter également un coller dans la zone A1 A10, comportant plusieurs valeurs. A voir ...

Pour Yojema, je comprends pas bien ton problème, il faut peut être que tu modifie la zone à contrôler, l'élargir d une colonne ... "A1:B1000" au lieu de "A1:A10"

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim p As Range

If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
    For Each p In Target
        If Not IsEmpty(p) And IsNumeric(p) And p > 10 Then
            With p.Borders(xlDiagonalUp)
                .LineStyle = xlContinuous
                .ColorIndex = 3
                .Weight = xlMedium
            End With
        Else
            p.Borders(xlDiagonalUp).LineStyle = xlNone
        End If
    Next p
End If
End Sub

Bonne soirée à tous
 
Re : Incrire une diagonale

Bonsoir,
merci pierrot93, je prend bonne note de ta proposition.
Les solutions proposées me conviennent parfaitement.
Ton code est différent des autres,mais EXCEL est tellement vaste que l'on ne sais plus quoi choisir.D'ou l'intérêt du suivit des sujets sollicités sur le forum
Merci
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
182
Réponses
6
Affichages
641
Retour