Plage variable pour graphique

Bonjour,

Comme dit dans le titre, j'aimerais créer une macro pour mon graphique.

Une partie est déjà faite. Maintenant je crée juste une macro pour que tout se fasse tout seul, j'aurais juste a copié les données voulues et cliquer sur un bouton, la macro s’occupe de tout le reste.

Cependant, mes données ont des lignes variable. J'ai regardé d'autre forum pour faire des plages variables mais impossible de faire fonctionner sur ma macro...

Voici la mienne :

Sub Graph_2lignes()

'

' Graph_2lignes Macro

'

'

Range("A1:C15").Select

Selection.ClearContents

Range("A1").Select

ActiveSheet.Paste

ActiveSheet.ChartObjects("Graphique 1").Activate

ActiveChart.Axes(xlValue).MajorGridlines.Select

ActiveChart.PlotArea.Select

ActiveChart.SetSourceData Source:=Range( _

"'Graphiques Simples'!$A$1:$A$2,'Graphiques Simples'!$C$1:$C$2")

Application.Run "Graphiques_V2.xlsm!ETIQUETTES"

Application.Run "Graphiques_V2.xlsm!MEF_Taille_12"

Application.Run "Graphiques_V2.xlsm!Choix_de_la_question_suivante"

ActiveSheet.ChartObjects("Graphique 1").Activate

ActiveChart.ChartArea.Copy

End Sub

J'ai surligné les cellules qui doivent être variables

Quelqu'un aurait-il la solution svp ?

Merci

Bonjour,

Dans l'hypothèse ou il n'y a que la ligne de fin qui change :

Si ta variables est var, ça devrait te donner quelque chose comme :

"'Graphiques Simples'!$A$1:$A$" & var & ",'Graphiques Simples'!$C$1:$C$" & var)

sinon si les 2 dimensions changent ça va te faire quelque chose comme :

"'Graphiques Simples'!$A$1:" & var1 & ",'Graphiques Simples'!$C$1:" & var2)

(avec var1 et var2) = Addresse des cellules de début et de fin de ligne...

A+

Merci de ta réponse rapide !

Justement c'est le "(avec var1 et var2) = Addresse des cellules de début et de fin de ligne..." que je ne sais pas coder

Je suis vraiment débutant dans ce domaine mais j'essaye d'apprendre

Ca ne te dérange pas de me montrer ce que ca donne au final en ligne de code ?

ça je peux pas faire à ta place... A coup sur ça te fera :

ActiveChart.SetSourceData Source:=Range( _
"'Graphiques Simples'!$A$1:" & var1 & ",'Graphiques Simples'!$C$1:" & var2)

mais la manière dont tu vas charger var1 et var2 ça je peux pas deviner !

Comment tu veux que je sache comment va évoluer ta plage source ?

Bonjour,

Bonjour galopin01,

Comment tu veux que je sache comment va évoluer ta plage source ?

Il y a plusieurs façons de dynamiser une plage, peut-être avec des tableaux structurés ?

Merci galopin, je n'avais pas tout compris..

Var = H58

Range("A1:C15").Select

Selection.ClearContents

Range("A1").Select

ActiveSheet.Paste

ActiveSheet.ChartObjects("Graphique 1").Activate

ActiveChart.Axes(xlValue).MajorGridlines.Select

ActiveChart.PlotArea.Select

ActiveChart.SetSourceData Source:=Range( _

"'Graphiques Simples'!$A$1:" & Var & ",'Graphiques Simples'!$C$1:" & Var)

Application.Run "Graphiques_V2.xlsm!ETIQUETTES"

Application.Run "Graphiques_V2.xlsm!MEF_Taille_12"

Application.Run "Graphiques_V2.xlsm!Choix_de_la_question_suivante"

ActiveSheet.ChartObjects("Graphique 1").Activate

ActiveChart.ChartArea.Copy

End Sub

Maintenant j'ai ca, mais ca me surligne ca en fluo, je ne sais pas pourquoi ...

Tu ferais tes déclarations de variables avec Option Explicit tu verrais tout de suite ce qui cloche :

Dim var as String
var = "H58" '(avec guillemets)

A+

Bizarre, la formule semble bonne, mais ca me selectionne nimporte quoi sur mon graph (ca selectionne tout jusque H58 environ)

En fait je pose genre 3 ligne de A1 à A3.

J'ai mis dans la case H58 la fonction NBVAL(A1;A3) pour que ca indique 3

et je voudrais que ma variable utilise ce "3" pour definir la longueur de plage a selectionner pour mon tableau...

mais ca fait n'importe quoi :/

Sub Graph_2lignes()

'

' Macro7 Macro

'

Dim var1 as String

Dim var2 as String

var1 = Range("H58").Value

var2 = Range("H59").Value

Range("A1:C15").Select

Selection.ClearContents

Range("A1").Select

ActiveSheet.Paste

ActiveSheet.ChartObjects("Graphique 1").Activate

ActiveChart.Axes(xlValue).MajorGridlines.Select

ActiveChart.PlotArea.Select

ActiveChart.SetSourceData Source:=Range( _

"'Graphiques Simples'!$A$1:" & var1 & ",'Graphiques Simples'!$C$1:" & var2)

Application.Run "Graphiques_V2.xlsm!ETIQUETTES"

Application.Run "Graphiques_V2.xlsm!MEF_Taille_12"

Application.Run "Graphiques_V2.xlsm!Choix_de_la_question_suivante"

ActiveSheet.ChartObjects("Graphique 1").Activate

ActiveChart.ChartArea.Copy

End Sub

J'en suis toujours la... :/

Essaie :

Dim Var1 as integer
var = Range("H58").Value
Range("A1:C15").Select
Selection.ClearContents
Range("A1").Select
ActiveSheet.Paste
ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.Axes(xlValue).MajorGridlines.Select
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range( _
"'Graphiques Simples'!$A$1:A" & var & ",'Graphiques Simples'!$C$1:C" & var)
'...

J'avais une autre petite erreur, mais j'ai reussi à corriger, merci !!

Rechercher des sujets similaires à "plage variable graphique"