Bonjour tout le monde,
Je vous remercie dans un premier temps d'avoir pris le temps de me lire et vous expose mon problème
Voila j'aimerais que dans la feuille STUB(2) à chaque fois que je vais sur une cellule de la range N:N, un graphique apparaisse me donnant les volumes du produit. Pour cela, j'ai une clé qui est le linetype. Dans la feuille STUB(2) il s'agit du range R:R dans le classeur verif vol et sa feuille associée, il s'agit du range B:B où j'ai fusionné les cellules pour avoir de lignes correspondant à un seul linetype. Et j'aimerais donc que une fois que l'on sélectionne une cellule de la range N:n on prenne donc ce linetype, qu'on aille chercher le linetype dans le fichier verif vol et qu'on face un graphique des données de la colonne C jusqu'à la dernière colonne et que ce graphique apparaisse dans la feuille stub(2). J'ai donc fait une procédure événementielle selectionchange sur la range n:n de stub(2) ou j'appelle la fonction créer_graphique. Je bloque donc sur cette même fonction où j'ai des problèmes d'incompatibilité de type etc. Je précise que je n'ai encore que des compétences basiques en vba(je cherche donc à m'améliorer grandement ). Attention, des fois il n'y a pas de linetype associé dans le fichier verif vol dans ce cas on ne fait tout simplement pas de graphique.
D'ailleurs sachant ma selectionchange sur la range n:n je crois que je n'ai même pas besoin de sélectionner n:n dans ma fonction créer_graphique ? c'est un redondance? il peut tout simplement directement se mettre sur le linetype ?
En vous remerciant,
PS : je vous met des fichiers light en pièce jointe donc dans mon code il y a peut être de légères différences.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 Sub creer_Graphique() Application.ScreenUpdating = False Application.DisplayAlerts = False Dim cell As Range Dim cell2 As Range Dim wb As Workbook Dim wb2 As Workbook Dim ws, ws2 As Worksheets Set ws = Worksheets("STUB(2)") Set wb = Workbooks("Copie_de_s3103_MEF2.xlsm") Set wb2 = Workbooks("verif_vol_promo_graphique.xlsm") Set cell = Workbooks("Copie_de_s3103_MEF2.xlsm").Worksheets("STUB(2)").Range("R:R") Set cell2 = Workbooks("verif_vol_promo_graphique.xlsm").Worksheets("verif_vol_promo").Range("B:B") Set cell3 = Workbooks("Copie_de_s3103_MEF2.xlsm").Worksheets("STUB(2)").Range("N:N") Dim i As Variant Dim j As Long i = Cells(Columns(14).Cells.Count, 1).End(xlUp).Row j = Cells(Columns(18).Cells.Count, 1).End(xlUp).Row If Range("N" & i).Select Then With i = j If Cells(j, 18).Value = Workbooks("verif_vol_promo_graphique.xlsm").Worksheets("verif_vol_promo").Range("B:B").Value Then k = Workbooks("verif_vol_promo_graphique.xlsm").Worksheets("verif_vol_promo").Range("B:B").Value k.Offset(1, 0).Select ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlLine ActiveChart.SetSourceData Source:=Range(Selection, Selection.End(xlToRight)) End If End With End If Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub
Partager