Graphique VBA avec 2 colonnes variables et disjointes
Résolu
padbollevrai
Messages postés
58
Statut
Membre
-
padbollevrai Messages postés 58 Statut Membre -
padbollevrai Messages postés 58 Statut Membre -
Bonjour,
Je débute en VBA et je cherche à faire un gaphique à partir d'une feuille.
J'ai cherché mais je n'ai pas trouvé de cas similaire au mien. Voici ce que je dois faire:
Créer un graphique avec Cycles en abcisse, Stiffness en ordonnée.
Les colonnes sont de longueur variable, il y a donc une détection de la dernière ligne (Lastline).
La colonne Stiffness se situe toujours en U, début en U4.
La colonne Cycles peut se situer n'importe ou entre A et T. Il faut donc la détecter: C'est la colonne numéro "Col".
Le graphique doit être créé sur la feuille existante CHART.
En bref, la plage de cellules serait du genre :
("Col & 4 : Col & Lastline") ET ("U4 : U & Lastline") avec la bonne synthaxe.
Voici le code que j'ai créé :
Evidemment, cela ne marche pas: Ouverture dans une nouvelle feuille, prend toutes les colonnes entre Col et T au lieu de ne prendre que ces deux là, etc.
Pouvez-vous m'aider ?
Merci !
Je débute en VBA et je cherche à faire un gaphique à partir d'une feuille.
J'ai cherché mais je n'ai pas trouvé de cas similaire au mien. Voici ce que je dois faire:
Créer un graphique avec Cycles en abcisse, Stiffness en ordonnée.
Les colonnes sont de longueur variable, il y a donc une détection de la dernière ligne (Lastline).
La colonne Stiffness se situe toujours en U, début en U4.
La colonne Cycles peut se situer n'importe ou entre A et T. Il faut donc la détecter: C'est la colonne numéro "Col".
Le graphique doit être créé sur la feuille existante CHART.
En bref, la plage de cellules serait du genre :
("Col & 4 : Col & Lastline") ET ("U4 : U & Lastline") avec la bonne synthaxe.
Voici le code que j'ai créé :
Sub Graph()
Dim Col As Integer, Cycle As Integer, Lastline As Integer
Sheets("OUTPUT").Select
Application.ScreenUpdating = False
Lastline = Range("A" & Rows.Count).End(xlUp).Row 'Detection derniere ligne
For Col = 1 To 20 'detection colonne Cycles
Select Case Cells(3, Col)
Case "Cycle"
Cycle = Col
Case Else
End Select
Next
Charts.Add 'Creation graphique
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=Sheets("2006").Range("Col & 4:Col" & Lastline & ",U4 : U" & Lastline), PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Chart"
With ActiveChart
.HasTitle = True
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).HasTitle = True
End With
End Sub
Evidemment, cela ne marche pas: Ouverture dans une nouvelle feuille, prend toutes les colonnes entre Col et T au lieu de ne prendre que ces deux là, etc.
Pouvez-vous m'aider ?
Merci !
A voir également:
- Graphique VBA avec 2 colonnes variables et disjointes
- Faire 2 colonnes sur word - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- Changer carte graphique - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Whatsapp avec 2 sim - Guide
3 réponses
J'ai réussi à faire un graphique qui foncitonne avec des valeurs de plages fixes, mais pas avec quelque chose de variable. J'ai essayé d'utiliser la fonction range dans la déclaration des données mais cela me renvoie une erreur. Voici le code :
Comment feriez-vous pour déclarer une plage de graphique avec des variables ?
Merci !
Sub Graph()
Dim Col As Integer, Cycle As Integer, Lastline As Integer
Sheets("OUTPUT").Select
Application.ScreenUpdating = False
Lastline = Range("A" & Rows.Count).End(xlUp).Row 'détection de la dernière ligne
For Col = 1 To 20
Select Case Cells(3, Col)
Case "Cycle" 'détection de la colonne "cycle"
Cycle = Col
Case Else
End Select
Next
Sheets("GRAPH").Select
ActiveSheet.Shapes.AddChart.Select 'Ecriture du graphique
ActiveChart.ChartType = xlXYScatter
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = "='OUTPUT'!$U$1"
ActiveChart.SeriesCollection(1).XValues = Worksheets("OUTPUT").Range(Cells(4, Cycle), Cells(Lastline, Cycle)) 'ligne qui pose problème
ActiveChart.SeriesCollection(1).Values = "='OUTPUT'!$U$4:$U$1669"
ActiveChart.ApplyLayout (3)
ActiveChart.Axes(xlValue).AxisTitle.Select
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "Number of Cycles"
ActiveChart.Axes(xlValue).AxisTitle.Select
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "Stiffness"
ActiveChart.ChartArea.Select
End Sub
Comment feriez-vous pour déclarer une plage de graphique avec des variables ?
Merci !