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 :

VBA pour Smart Art


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Esme Sudria
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Esme Sudria

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Par défaut VBA pour Smart Art
    Bonjour à tous,
    Voila mon problème je cherche à créer un graphique smart Art depuis un macro afin de lui affecter des valeurs sortie d'une macro plus important.
    Mais malheureusement je n'arrive pas à trouver ce qu'il me faut pour avancer dans mon projet. Quelqu'un aurait-il la gentillesse de m'explique comment cela fonction. Ou encore mieux des liens vers des explications détaillé de leurs utilisation via VBA.
    PS : Le graphique que j'ai l'intention d'utiliser du smart Art est le "Processus en Bloc continue" et j'ai besoins de travailler sur les textes en ajouter etc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub testgraphique()
    Dim oSALayout As SmartArtLayout
    Set oSALayout = Application.SmartArtLayouts(92) 'Prend la référence pour un graph "hiérarchie" 
     
    'Crée smartart
    Set oShp = ActiveWorkbook.ActiveSheet.Shapes.AddSmartArt(oSALayout)
     
    End Sub
    Le code ci-dessus me permet de créer un graphique hiérarchie, mais je ne trouve pas la référence pour le graphique qu'il me faut. Si quelqu'un sait ou elles ce trouvent ça peut me permettre d'avancer.

    En l'attente de votre aide cordialement, David

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    que te donne l'enregistreur de macro ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre régulier
    Homme Profil pro
    Esme Sudria
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Esme Sudria

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Par défaut
    Rebonjour
    jpcheck je dois t'avouer que je n'ai jamais utilisé l'enregistreur de macro... (je vais donc me renseigner avant de passer pour plus bête que je ne le suis)
    Au final le graphique hiérarchie me convient étant donnée que j'avais mal compris la tache que je dois faire ^^
    Je dois tracer arborescence d'un tableau excel qui présente un formulaire de question réponse

    Voici le programme rédige par mes soins donc imparfait son mode de fonctionnement est le suivant:
    - On pose une question à l'utilisateur placé dans la colonne question (ces réponses ne peuvent être que Yes No )
    - On recherche la question dans la ligne
    - un fois trouvé on descente de ligne jusqu’à trouver une cellule non vide
    - et si ce n'est pas le résultat on lui pose la question suivante
    - Si il tombe sur case renvoie L'utilisateur est envoyer dans un autre onglet avec une même forme de questionnaire

    Le programme fonctionne bien pour le fichier qui lui destinée ( pas celui joint celui-la est un exemple de ça forme, je suis en stage j'ai pas le droit de vous le monter :'( )
    Je cherche donc à en tracer l'arborescence si quelqu'un à des idées !

    PS: jpcheck je vais faire des tests avec l'enregistreur de macro je te dis si j'aboutie à une solution

    Cordialement, Duetor
    Fichiers attachés Fichiers attachés

  4. #4
    Membre régulier
    Homme Profil pro
    Esme Sudria
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Esme Sudria

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Par défaut
    Bonjour à tous,

    jpcheck tenté l'enregistreur de macro ben que très utile il ne m'a étais d'aucun secoure pour la macro que je tente de rédiger :'(

    Voici ce que j'ai fait depuis la dernière fois:
    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
     
    Sub Créer_graphique()
    Dim oSALayout As SmartArtLayout
    Dim QNodes As SmartArtNodes
    Dim QNode As SmartArtNode
     
    Set oSALayout = Application.SmartArtLayouts(92)
    Set oShp = ActiveWorkbook.ActiveSheet.Shapes.AddSmartArt(oSALayout)
     
    Set QNodes = oShp.SmartArt.AllNodes
    For i = 1 To 5      'supprime toutes les nodes de base
        oShp.SmartArt.AllNodes(1).Delete
    Next
    Set QNode = oShp.SmartArt.AllNodes.Add 'ajoute une node
    QNode.TextFrame2.TextRange.Text = "Stéfanie" 'ecris le texte
    Call Créer_Fils(QNode)
    End Sub
     
     
     
    Sub Créer_Fils(Parent As SmartArtNode)
    Dim FNode1 As SmartArtNode
    Dim FNode2 As SmartArtNode
    'va créer deux fils à mon parent
    Set FNode1 = Parent.AddNode(msoSmartArtNodeBelow)
    FNode1.TextFrame2.TextRange.Text = "de"
    Set FNode2 = Parent.AddNode(msoSmartArtNodeBelow)
    FNode2.TextFrame2.TextRange.Text = "monaco"
     
    End Sub
    Le premier Sub va créer mon graphique et l'initialiser.
    Le deuxième va lui rajouter deux fils.

    Mais mon problème et que je dois rappel cette fonction pour chacun de fils encore et encore ce qui emperchera de conserver mes liens si quelqu'un a une idée ingénieuse je suis preneur !

    Cordialement, Duetor

Discussions similaires

  1. [VBA pour Excel] Différence entre activate et select
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/10/2008, 17h20
  2. Réaliser une macro en VBA pour excel afin de créer un graphe
    Par xavier le breuil dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/12/2005, 14h41
  3. Réponses: 10
    Dernier message: 10/11/2005, 16h04
  4. Barre de progression VBA pour formulaire Access
    Par beegees dans le forum Access
    Réponses: 1
    Dernier message: 30/10/2005, 12h10
  5. Réponses: 3
    Dernier message: 06/09/2005, 10h27

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