Bonjour à tous!
Tout d'abord je tiens à préciser que je débute sur vba et que la solution à ce problème devrait être relativement simple... mais je ne parviens malheureusement pas à la trouver seule ou grâce aux tutoriels.
Je voudrait créer un graph à partir de la fonction FIND. Je m'explique. Je doit gérer des données venant de plusieurs services. J'ai réussit à tout regrouper dans un tableau de synthèse ("SYN") à partir duquel toutes les infos sont disponibles pour faire le graph.
Extrait:
Dans ce graph, je dois avoir les semaines en abscisses, les ordonnées de 0% à 100% et je dois voir les deux moyennes et le service choisi par l'utilisateur. Le problème se situe donc au niveau du domaine de définition du graph.Semaines 41 42 43 44 45 46 Collage 62% 70% 59% 74% 95% 63% Commercial 92% 92% 100% 100% Finition 56% 80% 80% Moyenne A 60% 66% 68% 62% 62% 79% Moyenne B 78% 67% 65% 74% 69% 75%
Voici mon code:
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 Private Sub Cmd_Graph_Click() 'Trouver la ligne de l'Unité/Service dans le tableau "SYN" Set U = Sheets("SYN").Range("A:A").Find(Label_Cbo_UnitServ.Caption) If U Is Nothing Then MsgBox "UN PROBLEME EST SURVENU. Veuillez contacter un support" End If 'Jusque là pas de problème, il me trouve bien le service dans la colonne A If Not U Is Nothing Then 'Créer le graph ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlXYScatterSmooth ActiveChart.SetSourceData Source:=Range("U.Row;SYN!$28:$29") 'Déplacer le graph vers une nouvelle feuille (graph horizontal) ActiveChart.Location Where:=xlLocationAsNewSheet 'Mise en forme du graph ActiveChart.Axes(xlCategory).MinimumScale = 39 ActiveChart.Axes(xlCategory).MaximumScale = 52 ActiveChart.Axes(xlValue).MinimumScale = 0 ActiveChart.Axes(xlValue).MaximumScale = 100 ActiveChart.ApplyLayout (8) ActiveChart.ChartTitle.Text = "Audit Rangement-Propreté" End Sub
Encore une fois, la problème est peut-être très facile à résoudre mais je tourne en rond.
Merci d'avance!
MaelB
Partager