Bonjour,

Je rencontre le problème suivant : La fonction que je tente de définir ne veut pas fonctionner.Ou plutôt, cela fonctionne (un objet chart est créé dans le classeur excel), mais un message d'erreur d'incompatilité de type apparait, surlignant la ligne "set MonGraphe = thisworkbook..."

Quelqu'un saurait-il m'aider ? Merci d'avance.

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
Private Function graphique(lg As Single, ht As Single, cellule As Range) As ChartObjects
 
Dim MonGraphe As ChartObjects
 
Set MonGraphe = ThisWorkbook.Worksheets("Feuil1").ChartObjects.Add(cellule.Left, cellule.Top, 700, 400)
 
End Function
 
 
Sub test()
 
Dim ZoneGraphique As Chart
 
ZoneGraphique = graphique(700, 400, ThisWorkbook.Worksheets("Feuil1").Range("A1:B2")).Chart
 
End Sub
Comme ceci, l'erreur n'est plus levée. Cependant, je n'arrive toujours pas à récupérer l'objet chart dans une variable au sein de la subroutine "test" sans qu'une erreur apparaisse..j'ai mis le code de la fonction, puis celui de la subroutine qui fonctionne, puis celui de la subroutine qui me pose problème avec la récupération dans une variable.

Si quelqu'un sait le faire, je le remercie d'avance de me donner un pti coup de main

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
Private Function graphique(lg As Single, ht As Single, cellule As Range) As ChartObjects
 
Dim MonGraphe As Chart
 
Set MonGraphe = ThisWorkbook.Worksheets("Feuil1").ChartObjects.Add(cellule.Left, cellule.Top, lg, ht).Chart
 
End Function
 
 
Sub test()
 
Call graphique(700, 400, ThisWorkbook.Worksheets("Feuil1").Range("C2:D3"))
 
End Sub
 
 
Sub test()
 
Dim zone As Chart
 
zone = graphique(700, 400, ThisWorkbook.Worksheets("Feuil1").Range("C2:D3"))
 
End Sub