VBA : graphique "courbe - histogramme 2 axes"

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

garth_algar

XLDnaute Junior
Bonjour,
Je souhaiterais créer un graphique avec une macro VBA à partir d'un tableau de trois colonnes.
Je voudrais :
- tracer une courbe avec les données de la deuxième colonne
- un histogramme avec les données de la troisième
- ajouter la 1ère colonne sur l'axe de abscisses

Pour l'instant je ne parviens à faire que deux courbes ou deux histogrammes, et ma première colonne ne figure en abscisses que si elle contient du texte (si elle contient des nombres, j'obtiens une troisième courbe ou histogramme).

Est-il possible de faire ceci ?
Si oui, les données sources peuvent-elles provenir d'un tableau VBA au lieu d'un tableau Excel ?

Merci d'avance pour vos réponses
 
Re : VBA : graphique "courbe - histogramme 2 axes"

re
Essai cela ?
Code:
Sub Graphique()
   Dim Graph As ChartObject
   With ActiveWorkbook.Worksheets(1)
      Set Graph = .ChartObjects.Add(200, 100, 500, 300)
   End With
      
   With Graph.Chart
      .SetSourceData Worksheets(1).Range("A1:C10")
      .HasTitle = True
      .ChartTitle.Text = "essai"
  '    .ChartType = xlLine
      .ApplyCustomType ChartType:=xlBuiltIn, TypeName:= _
        "Courbe - Histo. 2 axes"
    
   End With
End Sub
 
Re : VBA : graphique "courbe - histogramme 2 axes"

Merci, pour le type de graphique c'est bon.
Peut-on, dans le code, choisir la série qui donne l'histogramme, celle qui donne la courbe, et les étiquettes de l'axe des abscisses, comme on peut le faire avec l'assistant graphique ?
 
Re : VBA : graphique "courbe - histogramme 2 axes"

Re
Un peu plus compliqué
Code:
Sub Graphique()
   Dim Graph As ChartObject
   Set CHOIX = Application.InputBox(prompt:="Sélectionnez la plage de cellules pour l'axe.", _
Title:="Plage de cellules", Left:=500, Top:=300, Type:=8)
   With ActiveWorkbook.Worksheets(1)
      Set Graph = .ChartObjects.Add(200, 100, 500, 300)
   End With
 
   With Graph.Chart
      .SetSourceData Worksheets(1).Range("b1:C10")
  '    .ChartType = xlLine
      .ApplyCustomType ChartType:=xlBuiltIn, TypeName:="Courbe - Histo. 2 axes"
      .HasTitle = True
      .ChartTitle.Text = "essai"
      .SeriesCollection(1).XValues = CHOIX 'Range("A2:A10")
 
   End With
 
   ActiveSheet.ChartObjects(1).Activate
   essai = MsgBox("Voulez vous la série 1 en Graph ligne !", vbYesNo + vbExclamation, "Avertissement")
 
   If essai = vbNo Then
   Exit Sub
   Else
   ActiveChart.SeriesCollection(1).ChartType = xlLineMarkers
   ActiveChart.SeriesCollection(2).ChartType = xlColumnClustered
   End If
 
End Sub
 
Dernière édition:
Re : VBA : graphique "courbe - histogramme 2 axes"

Merci beaucoup CB60, c'est parfait.
Maintenant il me reste quelques détails de mise en forme à modifier (couleur de la courbe et de l'histogramme, type de la courbe, échelle des axes, titre des axes, ...). Connaîtrais-tu un site qui recense toutes les commandes utiles à la création d'un graphique, pour ne pas avoir à poster ici au moindre petit blocage ?
 
Re : VBA : graphique "courbe - histogramme 2 axes"

re
Il te suffit d'utiliser l'enregistreur de macro et d'adapter à ta sauce, sinon il il a " developper.com" ou il me semble avoir vue des tutos sur les macros pour graphique et ensuite plusieurs specialistes aux états Unis, avec Google fais une recherche avec le mot cles Chart
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
527
Compte Supprimé 979
C
Retour