pb:tracer d'un graphique à la demande

malouve

XLDnaute Nouveau
Bonjour,

J'ai fait une macro me permettant de tracer des graphiques de manière automatiques suivant toute ma plage de données maintenant je voudrais faire un "zoom à la demande". je m'explique:
-j'ai un text box qui me demande d'entrer le numéro de la cellule et le nombre de points que je veux tracer
mais lors de l'éxécution j'ai le message sur la nombre de points pour un graphe n'excède pas 32000, ....
et pourtant je m'arrange à ne pas dépasser plus de 10000 points car je veux faire un zoom

voici le code utilisé
la première procédure permet d'entrée le nombre de points et la numéro de la cellule de départ
la cellule procédure doit me permettre de tracer mon graphe
j'ai un tracé avec différente série qui ne corresponde pas à ma demande

Code:
Sub mess2()
    Dim value1 As Long
    Dim value2 As Long
    Select Case MsgBox("Voulez-vous entrer le nombres de points", vbYesNo, "Titre de la MsgBox")
        Case vbYes
            'remplissez les champs , débuts et nombre de points
            ' MsgBox ("Entrer vos nouveaux paramètres:")
            value1 = Application.InputBox(prompt:="Entrez le point d'entrée", Type:=1)
            value2 = Application.InputBox(prompt:="Entrez le nombre de points", Type:=1)
            Call AddChartObject1(value1, value2)
        Case vbNo
                'tracer les graphes
            Graphe (6)
          
    End Select
End Sub



Sub AddChartObject1(n As Long, m As Long)
On Error GoTo err_valid
 With ActiveSheet
    
    .Shapes.AddChart(Left:=50, Width:=700, Top:=20, Height:=175).Select
       
       With ActiveChart
        .ChartType = xlColumnStacked
        .SeriesCollection(1).Name = "De" & n & m
        .SeriesCollection(1).Values = "=" & "DATA" & "!$B$" & n & ":$B$" & m + n & ""
        
       End With
   
End With
Exit Sub
err_valid:
MsgBox Err.Description
End Sub


"DATA" est la feuille qui contient les données ;

Merci pour vos idées
c'est assez urgent
 

liloucmoi

XLDnaute Occasionnel
Re : pb:tracer d'un graphique à la demande

Hello tous,

j'ai un tracé avec différente série qui ne corresponde pas à ma demande

Ces modifs permettent de ne garder que la série 1, que tu paramètre ensuite à ton goût.

Code:
Sub AddChartObject1(n As Long, m As Long)
[B]Dim SC As Series[/B]

On Error GoTo err_valid
 With ActiveSheet
    
    .Shapes.AddChart(Left:=50, Width:=700, Top:=20, Height:=175).Select
       
[B]    For Each SC In ActiveChart.SeriesCollection
        If SC.Name <> .SeriesCollection(1).Name Then
            SC.Delete
        End If
    Next SC[/B]

       With ActiveChart
        .ChartType = xlColumnStacked
        .SeriesCollection(1).Name = "De" & n & m
        .SeriesCollection(1).Values = "=" & "DATA" & "!$B$" & n & ":$B$" & m + n & ""
        
       End With
   
End With
Exit Sub
err_valid:
MsgBox Err.Description
End Sub

Xldment.
 

malouve

XLDnaute Nouveau
Re : pb:tracer d'un graphique à la demande

je te remercie pour ta réponse
mais j'ai un message
"object doesn't support this property or method"
ce message apparait lorsque je finis de choisir mes entrées
et sur mon graphique, il y a toujours les séries indésirables
 

liloucmoi

XLDnaute Occasionnel
Re : pb:tracer d'un graphique à la demande

re,

je te remercie pour ta réponse
mais j'ai un message
"object doesn't support this property or method"
ce message apparait lorsque je finis de choisir mes entrées
et sur mon graphique, il y a toujours les séries indésirables

Après ma modification ?
Tu as le message sur quelle ligne ?


Sans fichier de ta part, il va être dur de t'aider pour moi.

Précise au moins la version d'excel que tu utilises dans ton profil stp.

Xldment.
 

malouve

XLDnaute Nouveau
Re : pb:tracer d'un graphique à la demande

excuses-moi pour mon manque de précision , c'est la version 2007 que j'utilise
oui le message est apparu après ta modif mais j'e l'ai mis plutot à la fin de mon tracé et
je l'ai relancé et çà marche maintenant. Je te remercie
 

malouve

XLDnaute Nouveau
Re : pb:tracer d'un graphique à la demande

je voudrais bien te demander autre chose si tu veux bien.
Je peux pas mettre mon file en attaché car je n'ai pas le droit mais je vais tenter de t'expliquer en détail un autre problème.
j'importe des DATA d'un fichier txt ki sont dans la feuille 1
dans la feuille 2 je colle des données venant d'un autre fichier xlsx ( ces données sont utilisées pour traiter les données de la feuille 1 avant traçage des graphes).
Mon problème est que lorsque je trace les plots, ma première feuille de graphe écrase la feuille2 ( le nom est juste changé mais les données sont toujours dans la feuille) et il y a une feuille qui est créé mais vide
et pourtant je crée bien des nouvelles feuilles pour les graphes.
Ce pb est apparu d'un coup car avant j'ai pu faire des tracés sans avoir de soucis et je n'ai pas modifié le code

voici le code pour les tracés

Code:
Function Graphe(Nbre_de_feuille As Integer)
On Error GoTo err_graph
Dim i As Integer
Dim Mn As Integer
Mn = 0
For i = 1 To Nbre_de_feuille
    j = i - 1
    Worksheets.Add
    Mn = Mn + 5
    Sheets(i - j).Select
    Sheets(i - j).Activate
    Sheets(i - j).Name = "Mns_" & Mn 'c'est à ce niveau qui renomme la feuille 2
    AddChartObject
    
Next i

Exit Function
err_graph:
MsgBox Err.Description
End Function

Sub AddChartObject()
Dim j As Integer
Dim pat As Long
pat = memopat

If G_pat <= ligntot Then
 With ActiveSheet
    
    For j = 1 To 5
    
        If j = 1 Then ActiveSheet.Shapes.AddChart(Left:=50, Width:=700, Top:=20, Height:=175).Select
        If j = 2 Then ActiveSheet.Shapes.AddChart(Left:=50, Width:=700, Top:=225, Height:=175).Select
        If j = 3 Then ActiveSheet.Shapes.AddChart(Left:=50, Width:=700, Top:=425, Height:=175).Select
        If j = 4 Then ActiveSheet.Shapes.AddChart(Left:=50, Width:=700, Top:=625, Height:=175).Select
        If j = 5 Then ActiveSheet.Shapes.AddChart(Left:=50, Width:=700, Top:=825, Height:=175).Select
       
       With ActiveChart
        .ChartType = xlColumnClustered
        .SeriesCollection.NewSeries
        .SeriesCollection(1).Name = "Min" & j
        .SeriesCollection(1).Values = "=" & "DATA" & "!$B$" & pat + 5 & ":$B$" & pat + 12004 & ""
        pat = pat + 12000
        
       End With
    Next j
  
End With
End If


memopat = pat

End Sub

si tu as une idée , je suis ok
merci
 

liloucmoi

XLDnaute Occasionnel
Re : pb:tracer d'un graphique à la demande

Re,

J'ai une idée en effet :D

Code:
For i = 1 To Nbre_de_feuille
    j = i - 1
    Worksheets.Add
    Mn = Mn + 5
    Sheets(i - j).Select
    Sheets(i - j).Activate
    Sheets(i - j).Name = "Mns_" & Mn 'c'est à ce niveau qui renomme la feuille 2
    AddChartObject
    
Next i

ici, tu boucles à priori sur le nombre de feuilles, et tu renommes uniquement la feuille 1 ...
(D'ailleurs, je vois pas l'intéret du select et du activate. (sauf si tu lances des évenements dessus bien sur ;) ) )

En effet, tu boucles sur i.
A chaque itération, tu calcules j = i-1.
Et tu renomme la feuille i - j = i - (i-1) = 1.
Je ne vois pas à quoi sert cette boucle.
Quelle est sensée etre son utilité ?

Xldment.
 

Statistiques des forums

Discussions
312 461
Messages
2 088 613
Membres
103 890
dernier inscrit
rugbymen79