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

XL 2019 organigramme en VBA

halecs93

XLDnaute Impliqué
Bonjour à toutes et à tous,

J'ai tenté un code VBA afin de créer automatiquement un organigramme hiérarchique (utilisant SmartArt).

Je rencontre une erreur à l'instruction : QNodes(Range("B" & i)).Demote

Quelqu'un(e) aurait une idée pour me sortir de cette impasse ?

Merci beaucoup
 

Pièces jointes

  • ORGANIGRAMME 3.xlsm
    21.6 KB · Affichages: 9

Staple1600

XLDnaute Barbatruc
Re

@patricktoulon
Pourquoi faire compliqué quand on peut faire simple?
Excel offre en natif un large choix d'organigramme
(personnalisable à souhait facilement par le ruban)
C'est d'ailleurs sur le SmartArt que le demandeur avait porté son choix (cf message#1)

Quel intérêt ne pas utiliser les nouvelles fonctionnalités offertes dans les nouvelles versions d'Excel ?
 

halecs93

XLDnaute Impliqué
Le demandeur est là...et il n'ignore aucun message Je regarde, une à une les propositions. Mais en tout cas, grand merci
 

Staple1600

XLDnaute Barbatruc
Re


@halecs93
Content de le savoir
Mais comme je n'ai pas lu de ta part si tu avais encore ou pas le message d'erreur, je pensais que tu avais zappé mes messages.
Tu as fait le test proposé dans le message#14 ?

Test OK chez moi, sans message d'erreur
(Excel 365 + W10)

@patricktoulon
Moi, non plus je ne connais pas plus que cela les SmartArt
Simplement, comme disait Jean-Claude Convenant, j'essaie d'utiliser les fonctions natives d'Excel autant que faire se peut
Et je conseille (quand la fièvre du principe KISS me reprend) aux primo-utilisateurs d'Excel de faire de même
 

halecs93

XLDnaute Impliqué
En effet, cela fonctionne. Souci... l'organigramme créé est horizontal (et illisible) alors que je souhaiterais l'obtenir en vertical. Et question subsidiaire, la taille des smatsarts peut-elle être adaptée au contenu ?

Merci

 

Staple1600

XLDnaute Barbatruc
Bonjour

@halecs93
Pour ma part dans un premier temps, je me suis borné à résoudre la question du message#1
A savoir: faire disparaitre le message d'erreur.
C'est désormais chose faite

En investiguant un peu plus, tu peux déjà faire des tests en te basant sur les valeurs suivantes.
(En remplaçant 92 par une des valeurs suivantes dans cette ligne de code)
Set ogSALayout = Application.SmartArtLayouts(92)
 

Staple1600

XLDnaute Barbatruc
Re

@halecs93
Si tu veux mettre en forme l'organigramme une fois qu'il est généré, tu peux tester cette macro
VB:
Sub Mise_en_forme_ORGA()
Dim shp As Shape
Application.ScreenUpdating = False
With ActiveSheet
    With .Shapes(1)
        .Height = 500: .Width = 1200: .Top = 7: .Left = 13
    End With
    For Each shp In .Shapes
    shp.SmartArt.Color = Application.SmartArtColors(8) 'valeurs possibles: 1 à 38
    shp.SmartArt.QuickStyle = Application.SmartArtQuickStyles(8) ''valeurs possibles: 1 à 14
    Next
End With
End Sub
 

halecs93

XLDnaute Impliqué
Ha merci... je vais regarder cela
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…