probleme sur macro

dede039

XLDnaute Occasionnel
bonjours a tous,
je revient a vous car j'ai une problème sur une macro
celle-ci me fait un graphique mais les date sur les abscisse sont fausse
c pourquoi je sollicite votre savoirs
voici le fichier et le code

Cijoint.fr - Service gratuit de dépôt de fichiers

Sub Temperature_plage_date()

Sheets("graph.plage de date").Visible = True
Sheets("graph.plage de date").Select
Set F1 = Worksheets(Feuil12.Name)
Application.ScreenUpdating = False
On Error Resume Next
F1.Shapes("Graphique1").Delete
Dim Plage As Range
If Feuil1.TextBox1 = "" Or Feuil1.TextBox2 = "" Then Exit Sub
With Feuil3
For k = 2 To .[A1048576].End(3).Row
If CDate(.Cells(k, 1)) >= CDate(Feuil1.TextBox1) And CDate(.Cells(k, 1)) <= CDate(Feuil1.TextBox2) Then
If Plage Is Nothing Then
Set Plage = Union(.Cells(k, 3), .Cells(k, 13), .Cells(k, 5))
Else
Set Plage = Union(Plage, .Cells(k, 3), .Cells(k, 13), .Cells(k, 5))
End If
End If
Next
End With
If Plage Is Nothing Then MsgBox "Pas de données", vbExclamation, "Erreur" _
: Sheets("menu").Visible = True: Sheets("menu").Select _
: Sheets("graph.plage de date").Visible = False: Exit Sub
Charts.Add
With ActiveChart
.ChartType = xlLine
.SetSourceData Source:=Plage, PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:=F1.Name
End With
ActiveSheet.ChartObjects("Graphique1").Activate
ActiveChart.ChartArea.Select
derlin = Sheets("Données").Range("R1048576").End(xlUp).Row
ActiveChart.SeriesCollection(1).XValues = "='Données'!$R$2:$R$" & derlin
ActiveChart.Parent.Name = "Graphique1"

End Sub
 

Staple1600

XLDnaute Barbatruc
Re: Re : probleme sur macro

Bonsoir Jérôme

Si, bien sur qu'on peut t'aider
Mais rien ne presse.
Et nous sommes en week-end, donc plus rares sur XLD

Un peu de patience...

PS: avec un fichier joint en xls et non en xlsm , plus de monde sera susceptible de t'aider ...
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re


Pourquoi ne déclares-tu pas toutes tes variables ?
PS: c'est la ligne en vert qui ne fonctionne pas en xls (et c'est normal)

Essaies avec ton code ainsi modifié
(Comme on teste, inutile de masquer/démasquer les feuilles non ?
Code:
Sub Temperature_plage_date()
Dim F1 As Worksheet, Plage As Range, k&, derlin&
Set F1 =Feuil12
Application.ScreenUpdating = False
On Error Resume Next
F1.Shapes("Graphique1").Delete

If Feuil1.TextBox1 = "" Or Feuil1.TextBox2 = "" Then Exit Sub
With Feuil3
For k = 2 To .[A1048576].End(3).Row
If CDate(.Cells(k, 1)) >= CDate(Feuil1.TextBox1) And CDate(.Cells(k, 1)) <= CDate(Feuil1.TextBox2) Then
  If Plage Is Nothing Then
   Set Plage = Union(.Cells(k, 3), .Cells(k, 13), .Cells(k, 5))
   Else
   Set Plage = Union(Plage, .Cells(k, 3), .Cells(k, 13), .Cells(k, 5))
  End If
End If
Next
End With
If Plage Is Nothing Then
MsgBox "Pas de données", vbExclamation, "Erreur"
Exit Sub
Else
Charts.Add
With ActiveChart
    .ChartType = xlLine
    .SetSourceData Source:=Plage, PlotBy:=xlColumns
    .Location Where:=xlLocationAsObject, Name:=F1.Name
End With
    ActiveSheet.ChartObjects("Graphique1").Activate
    ActiveChart.ChartArea.Select
  [COLOR="green"] ' derlin = Sheets("Données").Range("R1048576").End(xlUp).Row 'Excel 2007 et sup[/COLOR]
    derlin = Sheets("Données").Range("R65536").End(xlUp).Row ' Excel < à XL 2007
    ActiveChart.SeriesCollection(1).XValues = "='Données'!$R$2:$R$" & derlin
ActiveChart.Parent.Name = "Graphique1"
End If
End Sub
 
Dernière édition:

Discussions similaires

Réponses
1
Affichages
195
Réponses
0
Affichages
176

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 979
dernier inscrit
bderradji