Modification de code: worksheet

Nric

XLDnaute Nouveau
Bonjour,

J'ai le code suivant, généré par l'enregistreur de macro, qui me créé un graphique.

Code:
  Charts.Add
    ActiveChart.ChartType = xlColumnClustered
    ActiveChart.SetSourceData Source:=[B]Sheets("graph")[/B].Range("A1:B52"), PlotBy _
        :=xlColumns
    ActiveChart.SeriesCollection(2).Delete
    ActiveChart.SeriesCollection(1).XValues = "=[B]graph![/B]R1C1:R52C1"
    ActiveChart.SeriesCollection(1).Values = "=[B]graph![/B]R1C2:R52C2"
    ActiveChart.Location Where:=xlLocationAsObject, Name:=[B]"graph"[/B]
    With ActiveChart
        .HasTitle = True
        .ChartTitle.Characters.Text = "Transactions" & " " & transactions & "+" & " " & "(" & année & ")"
        .Axes(xlCategory, xlPrimary).HasTitle = True
        .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Week"
        .Axes(xlValue, xlPrimary).HasTitle = True
        .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Total"
    End With
    ActiveChart.HasLegend = False
    ActiveChart.PlotArea.Select
    ActiveChart.Axes(xlValue).MajorGridlines.Select
    With ActiveChart.Axes(xlValue)
        .MinimumScaleIsAuto = True
        .MaximumScaleIsAuto = True
        .MinorUnitIsAuto = True
        .MajorUnit = 1
        .Crosses = xlAutomatic
        .ReversePlotOrder = False
        .ScaleType = xlLinear
        .DisplayUnit = xlNone
    End With

Le problème est que le nom de mes feuilles vont varier en fonction de ce que mettra l'utilisateur dans une Inputbox. Actuellement le graphique ne se fait que sur la feuille nommée graph!

Ma question est la suivante:
Comment modifier ce code de manière à ce que le graphique se créé dans la feuille nommée par l'utilisateur via une inputbox? J'ai mis en gras les champs que je pense qu'il faut modifier.

Le code d'ajout de feuille est le suivant:

Code:
transactions = InputBox("Nombre désiré >= x? (pour x>=10)")
année = InputBox("Année désirée")

Worksheets.Add
ActiveSheet.Name = transactions & "+" & " " & "(" & année & ")"

Pouvez-vous m'expliquer comment procéder?

Nric
 

Catrice

XLDnaute Barbatruc
Re : Modification de code: worksheet

Bonsoir,

Peut etre quelque chose de ce genre (à tester) :

.....
transactions = InputBox("Nombre désiré >= x? (pour x>=10)")
année = InputBox("Année désirée")

MaFeuille = transactions & "+" & " " & "(" & année & ")"
Worksheets.Add
ActiveSheet.Name = MaFeuille

......
ActiveChart.SeriesCollection(1).XValues = "=" & MaFeuille & "!R1C1:R52C1"
ActiveChart.SeriesCollection(1).Values = "=" & MaFeuille & "!R1C2:R52C2"
ActiveChart.Location Where:=xlLocationAsObject, Name:=MaFeuille
.....
 

Nric

XLDnaute Nouveau
Re : Modification de code: worksheet

Bonsoir,

Peut etre quelque chose de ce genre (à tester) :

.....
transactions = InputBox("Nombre désiré >= x? (pour x>=10)")
année = InputBox("Année désirée")

MaFeuille = transactions & "+" & " " & "(" & année & ")"
Worksheets.Add
ActiveSheet.Name = MaFeuille

......
ActiveChart.SeriesCollection(1).XValues = "=" & MaFeuille & "!R1C1:R52C1"
ActiveChart.SeriesCollection(1).Values = "=" & MaFeuille & "!R1C2:R52C2"
ActiveChart.Location Where:=xlLocationAsObject, Name:=MaFeuille
.....

Bonsoir

Je vous remercie pour ce code, malheureusement cela ne marche pas.
J'ai également modifié

ActiveChart.SetSourceData Source:=Sheets("graph").Range("A1:B52"), PlotBy _
:=xlColumns


en

ActiveChart.SetSourceData Source:=ActiveSheet.Range("A1:B52"), PlotBy _
:=xlColumns


mais sans succès.
 

Catrice

XLDnaute Barbatruc
Re : Modification de code: worksheet

Re,

Ca doit fontionner, le probleme, c'est que je ne comprends pas ce que tu veux faire.
Il faudrait que tu donnes un exemple plus precis.
De quoi tu pars et où tu veux arriver.

Il faut adresser les zone de cette façon :
.XValues = "=" & MaFeuille & "!R1C1:R52C1"
 

Nric

XLDnaute Nouveau
Re : Modification de code: worksheet

Alors j'ai identifié le problème.

Il provient de la valeur que prend MaFeuille.

Si je met ca, ca marche impéc avec ton code

Code:
MaFeuille = transactions
Worksheets.Add
ActiveSheet.Name = MaFeuille

Mais si je met ca par ex, ca bug:

Code:
MaFeuille = transactions & "+"
Worksheets.Add
ActiveSheet.Name = MaFeuille

Etrange...
 

Discussions similaires

Réponses
1
Affichages
178
Réponses
0
Affichages
158

Statistiques des forums

Discussions
312 359
Messages
2 087 587
Membres
103 602
dernier inscrit
nuky_nuke