Bonjour tout le monde,
Je commence à programmer sous VBE et je rencontre mes premières erreurs!
Je cherche à créer un graphique qui apparaitrait dans une autre feuille du même book. J'ai donc la feuille "Trend Curves" qui regroupe les données pour le graphique et un bouton (BtCurve)qui permet de tracer la courbe.
Voici le code:
Mon problème se situe au niveau de la vérification de l'existence d'une feuille du même nom. Je fais appel à la fonction fExiste:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Public Sub BtCurve_Click() Dim objChart As Chart, objRange As Range Dim I As Integer, J As Integer, sMsg As String Dim Rslt As Variant Dim ESheet As Boolean Dim NberSheet As Integer 'Définition des constantes EquipmentName = Worksheets("Trend Curves").Range("E41").Value XTitle = Worksheets("Trend Curves").Range("M40").Value YTitle = Worksheets("Trend Curves").Range("N40").Value Title = YTitle & "=f(" & XTitle & ")" 'Selectionne les données voulues Set objRange = Worksheets("Trend Curves").Range(Worksheets("Trend Curves").Cells(40, 14), Worksheets("Trend Curves").Cells(Rows.Count, 15)) Set objChart = ThisWorkbook.Charts.Add 'Vérification de l'existence d'une feuille du même nom ESheet = fExiste(Title) 'MsgBox fExiste(Title) If ESheet = True Then Worksheets.Application.DisplayAlerts = False Sheets(Title).Delete objChart.Name = Title Worksheets.Application.DisplayAlerts = True Else objChart.Name = Title End If 'Mise en page du graphique objChart.Tab.ColorIndex = 6 objChart.ChartType = xlXYScatter objChart.SeriesCollection.Add objRange, xlColumns, True, True With objChart .HasTitle = True With .ChartTitle .Characters.Text = " " & EquipmentName & " " & YTitle & " = f( " & XTitle & " ) " .Shadow = True .Border.Weight = xlHairline End With With .Axes(xlValue, xlPrimary) .HasTitle = True .AxisTitle.Characters.Text = " " & YTitle End With With .Axes(xlCategory) .HasTitle = True .AxisTitle.Characters.Text = " " & XTitle End With End With End Sub
Mais je n'arrive pas à récupérer la sortie de la fonction qui reste toujours à Faux. Ca ne doit pas être trop compliqué mais je ne m'y connais pas et je rame...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Public Function fExiste(SheetName As Variant) As Boolean Dim Sheet As Excel.Worksheet For I = 1 To Worksheets.Count Set Sheet = Worksheets(I) If Sheet.Name = SheetName Then fExiste = True Else fExiste = False Next I End Function
Merci d'avance
Partager