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 :

Création de graphique automatique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Gestionnaire de moyen
    Inscrit en
    Juillet 2017
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Gestionnaire de moyen

    Informations forums :
    Inscription : Juillet 2017
    Messages : 38
    Par défaut Création de graphique automatique
    Suite à mon ancien topic (ICI), je crée un nouveau topic pour la suite et ainsi traiter mes problèmes pour la création automatique d'un graphique.

    J'ai commencé un code pour mettre le graphique. (code automatique de l'enregistrement).

    Suite aux remarques j'ai intégré certaine chose.

    Néanmoins, ça ne fonctionne pas vraiment et j'aimerai comprendre pourquoi.

    Je ne vois pas ce que fait cette ligne, elle change le format, mais comment exactement ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.Format.TextFrame2.TextRange.Characters.Text = Range("A2")

    De plus mon de s'arrête là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Selection.Format.TextFrame2.TextRange.Characters(1, 13).ParagraphFormat
    mais je ne sais pas pourquoi.

    De plus mon graphique n'a pas de légende.

    Code complet :
    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
    48
    49
    50
    51
    52
    53
        ActiveSheet.Shapes.AddChart2(276, xlAreaStacked).Select
        ActiveChart.SetSourceData Source:=Range("'Chien'!$B$1:$PA$16")
     
        With ActiveSheet.Shapes(1)
            .IncrementLeft -460.5
            .IncrementTop 60
            .ScaleWidth 3.5, msoFalse, msoScaleFromTopLeft
            .ScaleHeight 1.5, msoFalse, msoScaleFromTopLeft
        End With
     
        ActiveChart.ChartTitle.Text = Range("A2")
        Selection.Format.TextFrame2.TextRange.Characters.Text = Range("A2")
     
        With Selection.Format.TextFrame2.TextRange.Characters(1, 13).ParagraphFormat
            .TextDirection = msoTextDirectionLeftToRight
            .Alignment = msoAlignCenter
        End With
     
        With Selection.Format.TextFrame2.TextRange.Characters(1, 5).Font
            .BaselineOffset = 0
            .Bold = msoFalse
            .NameComplexScript = "+mn-cs"
            .NameFarEast = "+mn-ea"
            .Fill.Visible = msoTrue
            .Fill.ForeColor.RGB = RGB(89, 89, 89)
            .Fill.Transparency = 0
            .Fill.Solid
            .Size = 14
            .Italic = msoFalse
            .Kerning = 12
            .Name = "+mn-lt"
            .UnderlineStyle = msoNoUnderline
            .Spacing = 0
            .Strike = msoNoStrike
        End With
     
        With Selection.Format.TextFrame2.TextRange.Characters(6, 8).Font
            .BaselineOffset = 0
            .Bold = msoFalse
            .NameComplexScript = "+mn-cs"
            .NameFarEast = "+mn-ea"
            .Fill.Visible = msoTrue
            .Fill.ForeColor.RGB = RGB(89, 89, 89)
            .Fill.Transparency = 0
            .Fill.Solid
            .Size = 14
            .Italic = msoFalse
            .Kerning = 12
            .Name = "+mn-lt"
            .UnderlineStyle = msoNoUnderline
            .Spacing = 0
            .Strike = msoNoStrike
        End With

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 175
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour en savoir plus sur VBA et les graphiques, je te conseille déjà la lecture de la FAQ dédié à ce sujet
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Homme Profil pro
    Gestionnaire de moyen
    Inscrit en
    Juillet 2017
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Gestionnaire de moyen

    Informations forums :
    Inscription : Juillet 2017
    Messages : 38
    Par défaut
    J'ai regardé le FAQ mais trop d'info, et on est vite perdu.

    Je me suis fait un truc et ça fonctionne pour le moment. Je vais faire plusieurs essais. Il faut que je regarde encore pour faire un bouton qui lance une macro qui en enchaîne 2

    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
            Sh.Activate
            DLig = Range("B" & Rows.Count).End(xlUp).Row
            DrCol = Cells(2, Cells.Columns.Count).End(xlToLeft).Column
                Range(Cells(1, 2), Cells(DLig, DrCol)).Select
                ActiveSheet.Shapes.AddChart2(276, xlAreaStacked).Select
                ActiveChart.SetSourceData Source:=Range(Cells(1, 2), Cells(DLig, DrCol))
     
            With ActiveSheet.Shapes(1)
                .IncrementLeft -460.5
                .IncrementTop 60
                .ScaleWidth 3.5, msoFalse, msoScaleFromTopLeft
                .ScaleHeight 1.5, msoFalse, msoScaleFromTopLeft
            End With
     
        ActiveChart.ChartTitle.Text = Range("A2")

Discussions similaires

  1. excel (création de graphiques automatiquement)
    Par Ellolito dans le forum Microsoft Office
    Réponses: 0
    Dernier message: 26/02/2016, 15h52
  2. [XL-2007] création graphique automatique
    Par thibautewbank dans le forum Excel
    Réponses: 3
    Dernier message: 20/09/2011, 10h46
  3. Création de Graphique automatiques
    Par dirty_harry dans le forum Excel
    Réponses: 7
    Dernier message: 05/06/2009, 12h05
  4. [Tableaux] Création de lien automatique
    Par GarGamel55 dans le forum Langage
    Réponses: 3
    Dernier message: 17/09/2005, 17h26
  5. Création de graphique
    Par boxerbara dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 27/07/2005, 09h39

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