Graphique VBA avec 2 colonnes variables et disjointes
Résolu
padbollevrai
Messages postés
51
Date d'inscription
Statut
Membre
Dernière intervention
-
padbollevrai Messages postés 51 Date d'inscription Statut Membre Dernière intervention -
padbollevrai Messages postés 51 Date d'inscription Statut Membre Dernière intervention -
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
- Inverser 2 colonnes excel - 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 !