Pb "Subscipt out of range" sur affichage graphique en VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

expender

XLDnaute Nouveau
Bonjour,

je me permets de vous soliciter afin de trouver une erreur qui je pense est mineure mais que je n'arrive pas à résoudre depuis un petit moment. J'obtiens à chaque fois la même erreur avec le code suivant :

Sub Graph_Evol_Alloc()
'
' Graph_Evol_Alloc Macro, creation du graph de l'alloc pour chaque asset
'
'variables pour l'affichage
Dim fichier, onglet, cell_debut, cell_fin, plage As String

fichier = Range("'Graphiques'!$C$6").Value
onglet = Range("'Graphiques'!$C$11").Value
cell_debut = Range("'Graphiques'!$D$12").Value
cell_fin = Range("'Graphiques'!$D$13").Value

plage = cell_debut & ":" & cell_fin

ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Workbooks("fichier").Sheets("onglet").Range("plage")
ActiveChart.ChartType = xlAreaStacked100
ActiveChart.ApplyLayout (3)

End Sub

Ce dernier a pour but d'afficher un graphique dans mon fichier excel en prenant comme paramètre les différentes variables plus haut. Le fichier ou les informations sont stockées est bien ouvert et j'ai regardé en faisant un "watch" sur chaque variable afin de m'assurer que je recupère bien les bonnes valeurs. Néanmoins j'ai tjrs cette erreur.

Elle se produit lorsque le code arriver sur la ligne :
" ActiveChart.SetSourceData Source:=Workbooks("fichier").Sheets("onglet").Range("plage") "

J'ai émis l'idée que chaque variable récupére mes données avec des "" et que je rajoute aussi des "" au niveau de ma ligne Source pour chaque variable, est-ce que cela ne ferait pas doublon ?

Merci d'avance de votre aide, cordialement.
 
Re : Pb "Subscipt out of range" sur affichage graphique en VBA

Bonjour,

juste une petite question, sur la ligne ou tu as le défaut, le code est réellement écrit comme tu l'as indiqué ? "Rang e" ?
Si c'est le cas, supprime l'espace en trop.

Sinon, il nous faudrait le fichier afin d'y regarder de plus près...
 
Re : Pb "Subscipt out of range" sur affichage graphique en VBA

Pardon,

il s'agit d'une faute de frappe, il n'y a pas cet espace dans mon code.

Que faudrait-il comme information ?
J'ai juste mon fichier ou je cherche à afficher mon graphique avec dans le même fichier les informations (onglet "Graphiques"). Et un deuxième fichier de data avec les infos pour chaque client par onglet.
 
Re : Pb "Subscipt out of range" sur affichage graphique en VBA

Il faudrait ton fichier. exempt de toute donnée confidentielle..

ce message apparait lorsque tu fais référence à une source qui n'existe pas (exemple: si tu marque sheets("feuille1")... au lieu de sheets("feuil1")...

Vérifie que toutes les rérérences à feuilles classeur, nom de liste de données... existent bien.
Si tu fais appel à un classeur externe, assures-toi que ledit classeur soit bien ouvert au moment de l'exécution de la macro.

Je ne peux t'en dire plus sans voir le fichier
 
Re : Pb "Subscipt out of range" sur affichage graphique en VBA

Bonsoir.
Vortre problème vient de ce qu'il n'existe pas de cllasseur nommé "fichier". D'ailleurs un nom de classeur se termine en général par ".xls" (voire .xlsx ou .xlsm avec les nouvelles versions).
Peut être existe-t-il un classeur dont le nom est contenu dans la variable fichier, je ne sais pas. Dans ce cas il faut mentionner la variable fichier et non la constante "fichier".
À +
 
Re : Pb "Subscipt out of range" sur affichage graphique en VBA

Bonjour,

Pour faire suite au commentaire de Dranreb et à la fin de votre message, il faut probablement enlever les "" autours des variables -- fichier, onglet et plage --:

Code:
ActiveChart.SetSourceData Source:=Workbooks("fichier").Sheets("onglet").Range("plage")

par

Code:
ActiveChart.SetSourceData Source:=Workbooks(fichier).Sheets(onglet).Range(plage)

À tester...
 
Re : Pb "Subscipt out of range" sur affichage graphique en VBA

Tout d'abord merci pour vos réponses.

Grand Chaman Excel, j'ai aussi pensé à cela et donc que les "" étaient en trop, mais si j'enleve ces derniers au niveau de la ligne sourcedata, je ne peux pas lancer la macro.

Dranreb, j'ai justement déclaré les variables plus haut, néanmoins étant un débutant, j'ai pu (du) mal faire la déclaration. Dois-je changer quelque chose ?

Merci d'avance.
 
Re : Pb "Subscipt out of range" sur affichage graphique en VBA

Re,

GCE t'avait donné la solution, je ne vois pas ou était ton problème

Code:
Sub Graph_Evol_Alloc()
'
' Graph_Evol_Alloc Macro, creation du graph de l'alloc pour chaque asset
'
'variables pour l'affichage
  Dim fichier, onglet, cell_debut, cell_fin, plage As String
  ' Avec l'objet conteneur : feuille "Graphiques"
  With Sheets("Graphiques")
    fichier = .Range("$C$6").Value
    onglet = .Range("C$11").Value
    cell_debut = .Range("$D$12").Value
    cell_fin = .Range("$D$13").Value
    plage = cell_debut & ":" & cell_fin


    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.SetSourceData Source:=Workbooks(fichier).Sheets(onglet).Range(plage)
    ActiveChart.ChartType = xlAreaStacked100
    ActiveChart.ApplyLayout (3)
  End With
End Sub

Nota : un classeur Excel 2010 contenant des macros doit être enregistré en ".xlsm"
sinon tu perds tout 😉

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
1 K
Retour