IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Demande d'aide pour la création d'un Organigramme/ Treeview avec conditions


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Par défaut Demande d'aide pour la création d'un Organigramme/ Treeview avec conditions
    Bonjour à tous,

    D'avance merci pour les personnes qui prendront le temps de lire mon message et de m'aider.
    Via un script python je fabrique un fichier excel avec les données qui me vont bien ( voir en pièce jointe ). J'aimerais maintenant pouvoir exploiter ces données en construisant un organigramme de type parent enfant. J'ai regardé via l’excellent site de M. Boisgontier mais n'étant pas développeur, je n'arrive à rien...( pas de connaissance en VB)
    J'aimerais donc construire un organigramme de type parent enfant mais également retrouver la donnée voulu associée à l'application ( SLA calculée par exemple)

    Je pense qu'il faudrait adapter ce code pour la recursivité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Dim ligne, débutOrg, f, forga, inth, intv, Tbl(), n
    Sub DessineArbreDescendants()
       Set forga = Sheets("BD")
       Set f = Sheets("bd")
       Tbl = f.Range("A2:F" & f.[A65000].End(xlUp).Row).Value
       n = UBound(Tbl)
       For Each s In forga.Shapes
        If (s.Type = 17 Or s.Type = 1) And s.Name <> "curseur" Then s.Delete
       Next
       Set débutOrg = forga.Range("j1")
       ligne = 0
       inth = 90
       intv = 36
       lig = ActiveCell.Row - 1
       If lig > 0 And lig < n Then
         créeShapeV Tbl(lig, 1), 1, Tbl(lig, 3) & vbLf & Tbl(lig, 5) & "  " & Tbl(lig, 6), f.Cells(2, 1).Interior.Color
         DessineAscendants
       End If
    End Sub
    Sub créeShapeV(parent, niv, Attribut, coul) ' procédure récursive
      hauteurshape = 33
      largeurshape = 160
      ligne = ligne + 1
      forga.Shapes.AddShape(msoShapeFlowchartAlternateProcess, 10, 10, largeurshape, hauteurshape).Name = parent
      forga.Shapes(parent).Line.ForeColor.SchemeColor = 1
      txt = parent & "  " & Attribut
      With forga.Shapes(parent)
        .TextFrame.Characters.Text = txt
        .TextFrame.Characters(Start:=1, Length:=1000).Font.Size = 8
        .TextFrame.Characters(Start:=1, Length:=1000).Font.ColorIndex = 0
        .TextFrame.Characters(Start:=1, Length:=Len(parent)).Font.Bold = True
        .Fill.ForeColor.RGB = coul
        .TextFrame.Characters(Start:=1, Length:=Len(parent)).Font.Color = vbBlack
      End With
      forga.Shapes(parent).Left = débutOrg.Left + niv * inth
      forga.Shapes(parent).Top = débutOrg.Top + intv * ligne
      For i = 1 To n
        If Tbl(i, 1) = parent And niv > 1 Then
          shapePère = Tbl(i, 2)
          forga.Shapes.AddConnector(msoConnectorElbow, 100, 100, 100, 100).Name = parent & "c"
          forga.Shapes(parent & "c").Line.ForeColor.SchemeColor = 22
          forga.Shapes(parent & "c").ConnectorFormat.BeginConnect forga.Shapes(shapePère), 3
          forga.Shapes(parent & "c").ConnectorFormat.EndConnect forga.Shapes(parent), 2
       End If
       If Tbl(i, 2) = parent Then créeShapeV Tbl(i, 1), niv + 1, Tbl(i, 3) & vbLf & Tbl(i, 5) & "  " & Tbl(i, 6), f.Cells(2, 1).Interior.Color
      Next i
    End Sub
    Merci d'avance pour votre aide. Si vous n'avez pas compris je peux vous donner plus de détail.

    Sylvain


    Rapport_SLA (18).xlsx

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Un exemple tout simple avec un TreeView sur un UserForm et l'organigramme est en feuille "Feuil1"
    Fichiers attachés Fichiers attachés

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Par défaut
    Bonjour,

    En fait ce que j'aimerai c'est créer cette arborescence en tapant directement dans les données de mon tableau depuis les colonnes parent/enfant (et également afficher des valeurs)

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,


    Je ne peux plus t'aider pour l'instant car je suis sur iPad pour les vacances, de retour chez moi le 02/01
    Je te souhaite ainsi qu'à toute ta famille de passer de bonnes fêtes

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Par défaut
    Bonjour,

    bonne année à tous ainsi que mes meilleurs vœux pour cette année 2017
    Merci d'avance Theze si tu peux m'aider
    Je continue de mon coté a faire des tests sur du code

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Sur ton classeur, je vois une colonne parent et une colonne enfant mais ce sont des nombres ! Qu'est ce qui les lies entre eux ?

Discussions similaires

  1. Demande d'aide pour la création d'une requête SQL
    Par defcom60 dans le forum Langage SQL
    Réponses: 14
    Dernier message: 02/11/2015, 20h21
  2. demande d'aide pour la création d'une BDD
    Par RasWisdom dans le forum Débuter
    Réponses: 2
    Dernier message: 16/04/2013, 11h49
  3. Réponses: 4
    Dernier message: 03/06/2012, 08h08
  4. demande d'aide pour la création d'un driver
    Par thor76160 dans le forum C#
    Réponses: 3
    Dernier message: 20/12/2009, 21h20
  5. Réponses: 2
    Dernier message: 29/11/2006, 22h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo