Diagramme à entrées dynamiques
Tout d'abord, bonjour à tous! :)
Voilà ca fait un certains temps que je travaille sur un programme qui doit construire un diagramme. Sauf que les données inclues dans le diagramme sont choisies par l'utilisateur. J'ai donc fait un UserForm avec des CheckBox et un CommandButton. Quand une CheckBox est coché, le programme écrit "Aktiv" dans la case correspondante dans la feuille1. (B1 à B24)
Seulement au moment de faire le graphique, le programme m'indique une erreur que je n'ai pas réussi à résoudre malgré plusieurs jours de recherche. Voilà le programme, en version courte:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| Charts.Add
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Diagramme dynamique"
ActiveChart.ChartType = xlLineStacked
Windows("Diagramme dynamique.xls").Activate
For i = 1 To 24
var = Range("B" & i).Value
If var = "Aktiv" Then
j = j + 1
ActiveWindow.WindowState = xlMinimized
ActiveChart.SeriesCollection.NewSeries 'Création d'une courbe
ActiveChart.SeriesCollection(j).Name = "=" & Chr(39) & nomdefenetre & Chr(39) & "!R1C" & i + 1 & "" 'Nom de la courbe
'Intégrer les points dans le diagramme:
Select Case i
Case 1
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynMP"
Case 2
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynK1"
Case 3
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynGo"
Case 4
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynRst"
Case 5
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynStwi"
Case 6
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynPVSpng"
Case 7
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynLstg"
Case 8
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynAnstMP"
Case 9
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynSolar"
Case 10
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynAT11"
Case 11
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynTD12"
Case 12
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynTM13"
Case 13
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynNOT"
Case 14
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynMPP"
Case 15
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynCosPhi"
Case 16
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynS06"
Case 17
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynS07"
Case 18
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynS08"
Case 19
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynS09"
Case 20
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynS14"
Case 21
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynS15"
Case 22
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynS16"
Case 23
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynF1"
Case 24
ActiveChart.SeriesCollection(j).Values = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynF2"
End Select
ActiveChart.SeriesCollection(j).XValues = "=" & Chr(39) & nomdefenetre & Chr(39) & "!dynHeure" 'Editer les abscisses
ActiveChart.Axes(xlCategory).Select
ActiveChart.SeriesCollection(j).Select
ActiveChart.SeriesCollection(j).AxisGroup = j
With ActiveChart
.HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = ActiveChart.SeriesCollection(j).Name
End With
End If
Next i |
Avec i et j variables Integer, définies plus tot dans le programme, respectivement égales à 1 et 0 au debut du code.
nomdefenetre un String representant le Workbook où se trouve les fichiers d'où viennent les valeurs (lui aussi est choisit par l'utilisateur), et tout ce qui commence par dyn est le nom de la colonne dans le Workbook "nomdefenetre".
A la ligne en gras, le programme affiche une erreur: "Variable ou bloc With non défini"
Je vous avouerais qu'un peu d'aide ne serait pas de refus s'il vous plait. :)