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 :

Chart VBA excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 5
    Par défaut Chart VBA excel
    Bonsoir ,
    Je suis nouveau sur forum j'ai pensé que vous pourriez m'aider , alors voila dans le cadre d'un stage je dois réaliser à l'aide de VB un diagramme de gantt qui se fait dynamiquement à partir de données brutes , pour commencer j'ai trouvé ce code sur internet :
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    Sub createGanttChartType(data As Range)
     
        Charts.Add
        ActiveChart.ChartType = xlBarStacked
        ActiveChart.SetSourceData Source:=data, PlotBy:=xlColumns
        ActiveChart.Location Where:=xlLocationAsObject, Name:="GanttChartData"
        ActiveChart.PlotArea.Select
        With Selection.Border
            .Weight = xlThin
            .LineStyle = xlNone
        End With
        Selection.Interior.ColorIndex = xlNone
        ActiveChart.SeriesCollection(1).Select
        With Selection.Border
            .Weight = xlThin
            .LineStyle = xlNone
        End With
        Selection.Shadow = False
        Selection.InvertIfNegative = False
        Selection.Interior.ColorIndex = xlNone
            ActiveChart.SeriesCollection(2).Select
        With Selection.Interior
            .ColorIndex = 32
        End With
        ActiveChart.SeriesCollection(3).Select
        With Selection.Interior
            .ColorIndex = 34
        End With
        ActiveChart.Axes(xlCategory).Select
        With Selection
            .CrossesAt = 1
            .TickLabelSpacing = 1
            .TickMarkSpacing = 1
            .AxisBetweenCategories = True
            .ReversePlotOrder = True
        End With
        Selection.TickLabels.AutoScaleFont = True
        With Selection.TickLabels.Font
            .Name = "Arial"
            .FontStyle = "Regular"
            .Size = 8
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ColorIndex = xlAutomatic
            .Background = xlAutomatic
        End With
        ActiveChart.Axes(xlValue).Select
        With Selection
            .MinimumScale = data.Cells(2, 2).value
            .MaximumScale = data.Cells(data.Rows.Count, 2) + data.Cells(data.Rows.Count, 3) + _
                                                             data.Cells(data.Rows.Count, 4)
            .MinorUnitIsAuto = True
            .MajorUnitIsAuto = True
            .Crosses = xlMaximum
            .ReversePlotOrder = False
            .ScaleType = xlLinear
            .DisplayUnit = xlNone
        End With
        Selection.TickLabels.AutoScaleFont = True
        With Selection.TickLabels.Font
            .Name = "Arial"
            .FontStyle = "Bold"
            .Size = 8
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ColorIndex = xlAutomatic
            .Background = xlAutomatic
        End With
        With Selection.TickLabels
            .ReadingOrder = xlContext
            .Orientation = 45
        End With
        ActiveChart.Legend.Select
        Selection.Position = xlBottom
        ActiveChart.Legend.LegendEntries(1).Select
        Selection.Delete
    End Sub

    Malheureusement ce code ne fonctionne correctement que pour trois taches sauriez vous comment le modifier pour qu'il marche avec plus de trois taches ?

    Merci .

  2. #2
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    Bonjour,
    Une explication claire sur ce site https://www.excel-exercice.com/diagramme-de-gantt/
    Pour faire en VB, enregistrer la macro

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 5
    Par défaut
    Merci , votre tuto est super intéressant mais vous ne répondez néanmoins pas à ma question

  4. #4
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    Bonjour,
    Avez-vous vérifier le contenu de la variable data?
    Pour conseil, je passerai plutôt la zone de cellules
    Sinon, comme je l'avais conseillé, enregistrer une macro pendant la construction du graphe et adapter ou comparer avec votre code.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 5
    Par défaut
    Bonjour ,
    oui quand je fais entrer une plage plus grande de cellule l affichage ne se fait correctement que que sur les 3 premières taches , je vais essayer votre méthode et je reviens vers vous , merci pour votre aide

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 5
    Par défaut
    Re-bonjour , désolé mais ca ne marche pas quand j enregistre une macro

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 5
    Par défaut
    La séléction des données ne s'enregistre pas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA] Excel.Chart.8: recherche de quelques commandes
    Par PsykotropyK dans le forum Access
    Réponses: 7
    Dernier message: 03/12/2007, 15h45
  2. (vba excel) Copie automatique de charts
    Par moicwill dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/07/2006, 18h17
  3. [VBA-Excel]
    Par Damsou dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/01/2005, 10h17
  4. [VBA EXCEL] Réduire/Agrandir UserForms
    Par Fench dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/11/2003, 16h02
  5. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12

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