Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Connecteurs - épaisseur & couleurs du trait

  • Initiateur de la discussion Initiateur de la discussion CdG06
  • 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 !

CdG06

XLDnaute Nouveau
Bonjour à tou le forum,

Après une recherche infructueuse concernat les connecteurs et le VBA, je me tourne vers vous pour une aide.

J'ai construit un garphe comprenant plusieurs formes (rectangles) reliées entre elles par des connecteurs (flèches). Banal jusque là..... Par contre j'aurais souhaité que ces flèches soit la traduction d'un volume de flux. En gros il y a 4 "volumes" (soit 4 épaisseurs de trait possibles), donc comment relié une cellule contenant le volume à une épaisseur de trait? de plus le flux peut être positif ou négatif, donc comment faire pour que la flèche soit de couleur verte ou rouge? Au total j'ai une petite vingtaine de flèches, autant de cellules contenant 1 volume parmi 4 et son sens (+ ou -).

Je vous remercie par avance de vos idées et vous souhaite une agréable journée 😎
 
Re : Connecteurs - épaisseur & couleurs du trait

Bonjour.
Par une macro. Boucler sur les Shapes. Ils ont un jeu de propriétés faites pour les connecteurs attachés.
J'ajouterais bien le code moi même à votre classeur.
À+
 
Re : Connecteurs - épaisseur & couleurs du trait

Merci Dranreb pour ta réponse.

J'ai joint un exemple (pas forcément très beau.....) de ce que je fais manuellement!!!

VBA n'est pas bien maitrisé de ma part, j'ai essayé avec l'enregistreur sans résultat.

Le "rêve" serait que ces flèches se mettent à jour toutes seules à chaque changements de données......... sinon ce sera à la main!!! 😛
 

Pièces jointes

Re : Connecteurs - épaisseur & couleurs du trait

Je croyais que le volume de flux était inscrit dans les recangles.
Là, comment ou établit le lien entre les connecteurs et les cellules correspondante ?
À+
 
Re : Connecteurs - épaisseur & couleurs du trait

Dranreb, en fait les donnés de volumes sont dans un pavé de cellules hors dessin. J'ai juste fait 4 classes de volume pour 4 épaisseurs, le signe m'indiquant la couleur. Les rectangles indiquant d'autres infos ou un nom.

Bonne journée
 
Re : Connecteurs - épaisseur & couleurs du trait

Bon.
Puisque vous ne répondez pas à ma question, je décide:
Le nom du connecteuer sera de la forme "Conn" & Adresse de la cellule contenant le volume.
À+

Voilà:
VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sh As Shape, Vol As Long
For Each Sh In Me.Shapes
   If Left(Sh.Name, 4) = "Conn" Then
      Vol = Me.Range(Mid$(Sh.Name, 5)).Value
      End If
   Sh.Line.Weight = Abs(Vol) + 1
   If Vol > 0 Then Sh.Line.ForeColor.RGB = RGB(0, 128, 0) _
              Else Sh.Line.ForeColor.RGB = RGB(255, 0, 0)
   Next Sh
End Sub
À+
 
Dernière édition:
Re : Connecteurs - épaisseur & couleurs du trait

Désolé Dranreb, je n'avais pas compris l'objet de votre question. Le nom que vous donnez me va bien et il est explicite 😱 Merci et bon appétit, vue l'heure!!!
 
Re : Connecteurs - épaisseur & couleurs du trait

Merci Dranreb, vais étudier cela maintenant.....m'attendais pas à ces instructions, totalement inconnues........
Sympa ton aide merci et à tout à l'heure
 
Re : Connecteurs - épaisseur & couleurs du trait

Dranreb,
Le test pour la couleur semble correct, cependant la flèche ne connait que le "rouge". L'épaisseur du trait est la même, mais je pense qu'il me faut lui indiquer quelle éppaisseur de trait pour quel volume.

@+
 
Re : Connecteurs - épaisseur & couleurs du trait

Non, normalelment si les cellules contiennent bien des nombres il ne devrait colorier en rouge que les négatifs. Effectivement j'affecte le volume+1 comme epaisseur, peut être un Log serait plus indiqué ?
En revanche une erreur grave dans mon code: le End If devrait être juste avant le Next Sh.

Ah et puis il va de soit que le "Connecteur droit avec flèche 5" doit être renommé "ConnD12"
et que le "Connecteur droit avec flèche 7" doit être renommé "ConnG12".

Remarque: Des noms de plages marcheraient aussi et ce serait mieux.

À+
 
Dernière édition:
Re : Connecteurs - épaisseur & couleurs du trait

Oui. dans un .xls fabriqué à partir de ton .xlsx ça marche.
Non, il était à la mauvaise place:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sh As Shape, Vol As Long
For Each Sh In Me.Shapes
   If Left(Sh.Name, 4) = "Conn" Then
      Vol = Me.Range(Mid$(Sh.Name, 5)).Value
      Sh.Line.Weight = Abs(Vol) + 1
      If Vol > 0 Then Sh.Line.ForeColor.RGB = RGB(0, 128, 0) _
                 Else Sh.Line.ForeColor.RGB = RGB(255, 0, 0)
   ElseIf Sh.Connector Then
      MsgBox "Nom de connecteur """ & Sh.Name & """ Incorrect"
      End If
   Next Sh
End Sub
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…