Bonjour à tous!
Voilà g un "petit" problème de modélisation graphique.... et vu que je suis pas fort en prog VBA g besoin de vos conseils avertis!
Voici mon programme :
Code:
Private Sub CommandButton1_Click()
Dim DateSaisie1 As Date
Dim DateSaisie2 As Date
Dim NumDate1 As Long
Dim NumDate2 As Long
If Me.TextBox1 = "" Then
Fin:
MsgBox "Aucune valeur saisie ou date erronée"
Me.TextBox1.Value = ""
Me.TextBox1.SetFocus
Exit Sub
End If
On Error GoTo Fin
If Me.TextBox2 = "" Then
Fin2:
MsgBox "Aucune valeur saisie ou date erronée"
Me.TextBox2.Value = ""
Me.TextBox2.SetFocus
Exit Sub
End If
On Error GoTo Fin2
DateSaisie1 = DateValue(Me.TextBox1.Value)
DateSaisie2 = DateValue(Me.TextBox2.Value)
NumDate1 = DateSerial(Year(DateSaisie1), Month(DateSaisie1), Day(DateSaisie1))
NumDate2 = DateSerial(Year(DateSaisie2), Month(DateSaisie2), Day(DateSaisie2))
Range("A1:A" & Cells(65536, 1).End(xlUp).Row).NumberFormat Local = "0"
Selection.AutoFilter Field:=1, Criteria1:=">=" & NumDate1, Operator:=xlAnd, Criteria2:="<=" & NumDate2
Range("A1:A" & Cells(65536, 1).End(xlUp).Row).NumberFormat Local = "jj/mm/aa"
Sheets("Feuil1").AutoFilter.Ra nge.Copy Sheets("Feuil2").Range("A1:C1" )
Sheets("Feuil2").Range("1:1"). Delete Shift:=xlShiftToLeft
Sheets("Feuil2").Columns("A"). Delete Shift:=xlShiftToLeft
'Graphique
Sheets("Feuil2").Select
Columns("A:B").Select
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Feuil2").Range ("A1:B1585"), PlotBy _
:=xlColumns
ActiveChart.SeriesCollection(1 ).Delete
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Modélisation"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Modélisation du débit"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Character s.Text = "Débit"
End With
With ActiveChart.Axes(xlCategory)
.HasMajorGridlines = True
.HasMinorGridlines = False
End With
With ActiveChart.Axes(xlValue)
.HasMajorGridlines = True
.HasMinorGridlines = False
End With
ActiveChart.HasLegend = False
ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowNone, LegendKey:=False
ActiveChart.Axes(xlCategory).M ajorGridlines.Select
ActiveChart.Axes(xlCategory).M ajorGridlines.Select
With ActiveChart.Axes(xlCategory)
.CrossesAt = 1
.TickLabelSpacing = 30
.TickMarkSpacing = 60
.AxisBetweenCategories = True
.ReversePlotOrder = False
End With
ActiveChart.PlotArea.Select
Selection.ClearFormats
ActiveChart.SeriesCollection(1 ).Select
With Selection.Border
.ColorIndex = 5
.Weight = xlThin
.LineStyle = xlContinuous
End With
With Selection
.MarkerBackgroundColorIndex = xlNone
.MarkerForegroundColorIndex = xlNone
.MarkerStyle = xlNone
.Smooth = False
.MarkerSize = 3
.Shadow = False
End With
End Sub
Private Sub UserForm_Initialize()
Range("A1").Select
Me.TextBox1.SetFocus
Me.TextBox2.SetFocus
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Sheets("feuil1").Select
Selection.AutoFilter Field:=1
Range("A1:A" & Cells(65536, 1).End(xlUp).Row).NumberFormat Local = "jj/mm/aa"
End Sub
Le programme filtre automatiquement des valeurs et les recopie sur une nouvelle feuille... jusque là ca marche!
Mais là où ca se complique c qd je veux modéliser ces valeurs par un graphique "courbe"... en effet, vu ke je m'y connais pas trop en fonctions vba, j'ai enregistré une macro et g recopié son contenu ds mon programme.... et bien sur c trop simple pr bien fonctionner : le graphe se trace, mais g 2 problèmes d'échelles
le 1er : les abscisses qui devraient être affichées en hh:mm:ss sont affichée en code
le 2eme et le plus important : j'arrive pas à mettre un code permettant d'obtenir des échelles automatiques pr y voir kkchose qd je modélise peu de valeurs et pr tout voir lorsque je modélise un gd nbre de valeurs...
je vous remercie d'avance pr votre aide
n'hésitez pas à me demander le classeur excel pr voir à quoi ce prog ressemblr exactement...
Bonne journée à tous!
-----