Problème macro excel pour faire une somme

Fermé
malouve Messages postés 56 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 20 juillet 2010 - 25 sept. 2009 à 10:34
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 25 sept. 2009 à 15:11
Bonjour,

J'ai réalisé des graphes automatiques en faisant une maro sous excel avec une fonction de ZOOM sur une partie du gaphe , je voulais par la suite faire une somme des valeurs des cellules utilisées pour le zoom et l'afficher sur mon graphe .
A chaque fois que je clique qur mon bouton ZOOM, je reseigne mon 1er point et le nombre de point que je veux afficher mais la première fois , ma somme = 0 et qd je refais la manip la somme prend la bonne valeur.
J'ai fait un debeug pas à pas et je vois que les cellules indexées n'ont pas de valeur ( la première fois que je clique sur le bouton ZOOM) et pourtant , elles ont bien des valeurs , je ne comprends pas du tout , ce qui se passe

voici le code appelé dans un commandbutton_click

Sub AddChartObject_zoom(n As Long, m As Long)
Dim SC As Series
Dim cost As Single
cost = 0
Dim j As Long


 For j = n To n + m
  ' c'est ici le problème la première fois que je clique sur mon bouton Cells(j, "A").Value est vide , c'est pas le cas en réalité 
  cost = cost + Cells(j, "A").Value
 
   Next j

On Error GoTo err_valid
Sheets("DATA").Select
 With ActiveSheet
    
    .Shapes.AddChart.Select
      
      
       With ActiveChart
       .ChartType = xlColumnClustered
        .SeriesCollection.NewSeries
        .SeriesCollection(1).Name = "From " & n & " to " & m + n & Chr(10) & " (cost " & cost & ")"
        .SeriesCollection(1).Values = "=" & "DATA" & "!$A$" & n & ":$A$" & m + n & ""
        
            End With
  
  
        
   For Each SC In ActiveChart.SeriesCollection
        If SC.Name <> ActiveChart.SeriesCollection(1).Name Then
            SC.Delete
        End If
    Next SC

End With
Exit Sub
err_valid:
MsgBox Err.Description
End Sub


je vous remercie si vous avez des idées
A voir également:

3 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
25 sept. 2009 à 12:44
Bonjour,

Peut être en indiquant où se trouve Cells(j, "A").Value

Par exemple :
Sheets(1).Cells(j, "A").Value

;o)
0
malouve Messages postés 56 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 20 juillet 2010 3
25 sept. 2009 à 13:54
merci polux31,

effectivement le pb venait du fait que la feuille n'était pas renseignée au départ
le problème est résolu mais j'aurai une autre question à poser concernant les graphes
comment changer l'axe des abscisses afin de prendre en compte le range sélectionné

Exp : range colonne A de 1 à 12000 --> on voit sur le graphe x= 1 à 12000
range colonne A de 12000 à 24000 --> on voit sur le graphe x= 12000 à 24000

actuellement pour tous mes graphes , je vois de 1 à 12000 même si les range vont de 1 à n par pas de 12000
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
25 sept. 2009 à 15:11
Dsl, mais je ne connais pas bien Excel et encore moins les graphes...
0