Bonjour à tous,
je suis en train de développer une fonction permettant de mettre à jour des données dans un graphique (secteur) et étant donnée le nombre important de graphique que je dois traité j'ai préféré lui dédier une fonction spécifique.
je passe toutes la partie de recherche des valeurs et des calculs qui amène au résultat de ma fonction, ma fonction renvoi une variable tableau avec 6 valeurs.
la procédure appel la fonction et met à jour les valeurs du graph correspondant cependant lorsque je vérifie mon graph après l’exécution de ma procédure, j'ai une valeur de trop affiché et elle sont décalé par rapport à ce que j'attend.
Quelqu'un pourrait-il m'expliqué pourquoi ma fonction renvoie une valeur de trop SVP
je vous met la procédure qui appel la fonction et la fonction :
Procédure :
et la fonction Alléger
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Private Sub Centreur() 'Calcul la répartition des temps pour la fabrication d'un centreur Const CritèreFiltre As String = "CSID001", ColonneFiltre As Integer = 5 Const Article As String = "*centreur*", Graph As String = "Graphique 14" Worksheets("TDB").Activate ActiveSheet.ChartObjects(Graph).Activate With ActiveChart .SeriesCollection(1).Values = CalculTaux(Article, ColonneFiltre, CritèreFiltre) End With Worksheets("TDB").Activate End Sub
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 Function CalculTaux(Recherche As String, Colfiltre As Integer, CritèreFiltre As String) As Variant For i = 1 To nbLigne Set Cellule = ActiveSheet.Columns(ColOF).Cells.Find(what:=OF(i)) If Not Cellule Is Nothing Then tps(1) = tps(1) + Cells(Cellule.Row, 6) 'somme les temps de prod tps(2) = tps(2) + Cells(Cellule.Row, 7) 'somme les temps de regalage tps(3) = tps(3) + Cells(Cellule.Row, 9) 'somme les temps de pannes tps(4) = tps(4) + Cells(Cellule.Row, 10) 'somme les temps d'arret tps(5) = tps(5) + Cells(Cellule.Row, 14) 'somme les temps d'Etat CN prete tps(6) = tps(6) + Cells(Cellule.Row, 15) 'somme les temps de attente End If Next i CalculTaux = tps() End Function
Partager