Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

problème de nom de variable dans un graphique

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 !

lobinho01

XLDnaute Nouveau
Bonjour à tous,
Je voudrais remplacer "graphAbsfeuillemodèle" et "graphOrdfeuillemodèle" par des variables correspondant à "graph" & nom.
Mais là, je sèche.
Si quelqu'un a la soultion ... je suis preneur
@ plus

Vous trouverez ci dessous, un bout de mon VBA

With Sheets("feuillemodèle") 'Création des noms des constantes
.Cells.Copy Sheets(nom).Cells
Ligne = .Range("totauxfeuillemodèle").Row
ad = .Range("titrescolonnesfeuillemodèle").Address
ad1 = .Range("totauxfeuillemodèle").Address
ad2 = .Range("stockdesécuritéfeuillemodèle").Address
ad3 = .Range("graphAbsfeuillemodèle").Address 'ajout le 04/04
ad4 = .Range("graphOrdfeuillemodèle").Address 'ajout le 04/04
ad5 = .Range("graphfeuillemodèle").Address 'ajout le 11/04

End With
With Sheets(nom) 'Nomination du titre de la feuille et des zones en fonction des constantes
.Range("a1") = nom
.Range(ad).Name = "titrescolonnes" & nom
.Range(ad1).Name = "totaux" & nom
.Range(ad2).Name = "stockdesécurité" & nom
.Range(ad3).Name = "graphAbs" & nom 'ajout le 04/04
.Range(ad4).Name = "graphOrd" & nom 'ajout le 04/04
.Range(ad5).Name = "graph" & nom 'ajout le 11/04
.Range("totaux" & nom).Replace what:="feuillemodèle", replacement:=nom, LookAt:=xlPart, SearchOrder:=xlByRows
Range("T9").Select
ActiveCell.FormulaR1C1 = "6"
ActiveSheet.ChartObjects("Chart 8").Activate
ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).Formula = _
"=SERIES(,'" & Range("A1").Value & "'!graphAbsfeuillemodèle,'" & Range("A1").Value & "'!graphOrdfeuillemodèle,1)"
 
Re : problème de nom de variable dans un graphique

Bonjour.
Utilisez la méthode Add de la collection Names du classeur pour modifier les noms de plage.
La propriété Name d'un Range est en effet plus qu'un simple string: c'est un objet.
Extrait de l'aide: À+
 
Dernière édition:
Re : problème de nom de variable dans un graphique

Re
J'ai oublié:
les deux variables GraphAbsfeuillemodèle & GraphOrdfeuillemodèle sont définies avec le gestionnaire de noms
- GraphAbsfeuillemodèle -> =DECALER(feuillemodèle!$X$6;EQUIV(feuillemodèle!$AA$72;feuillemodèle!$X$7:$X$65536;0);0;-feuillemodèle!$AA$73;1)
- GraphOrdfeuillemodèle -> =DECALER(feuillemodèle!$Y$6;EQUIV(feuillemodèle!$AA$72;feuillemodèle!$X$7:$X$65536;0);0;-feuillemodèle!$AA$73;1)

Pour info, le but de l'opération est de créer une nouvelle feuille d'après une feuille modèle. Toutes les variables doivent être dupliquées & renommées. Jusque là tous va bien. J'ai réussi à dupliquer le graphique et ses variables sauf les deux ci-dessus où j'arrive à recréer un nouveau nom mais pas leur formules dans le gestionnaire de noms.

D'où, je voudrais bien utiliser la méthode Add mais je ne sais pas comment ..

@ +
 
Re : problème de nom de variable dans un graphique

Bonjour.
D'où, je voudrais bien utiliser la méthode Add mais je ne sais pas comment ..
Eh bien si le modèle dans l'aide ne vous suffit pas, enregistrez une nouvelle macro, créez votre nom avec le gestionnaire, arrêtez l'enregistrement et regardez le code engendré.
À+
 
Re : problème de nom de variable dans un graphique

En essayant d'enregistrer une macro, lorsque je veux coller mon texte dans les données du graphique au niveau des abscisses, j'ai un message d'erreur Fonction invalide.
A+
 
Re : problème de nom de variable dans un graphique

Bonjour
Je vous suggérais juste d'enregistrer non pas autre chose que la création du nom pour examiner l'instruction ActiveWorkbook.Names.Add qu'il engendre, et voir comment la modifier pour introduire par des concaténations des partie variables dans les paramètres Name et RefersTo.
Mais vous semblez avoir d'autres difficultés. Il serait grand temps de joindre votre classeur pour qu'on puisse travailler dessus sans perdre plus de temps, Je ne vais quand même pas me farcir la création d'un grahique bidon, enfin tout le support d'une solution complète. Ce serait d'ailleurs bien un hasard que ça corresponde à votre cas. Ou alors posez des question plus ciblées sur les instructions où vous butez.
Autre extrait de l'aide: À+
À+
 
Re : problème de nom de variable dans un graphique

Désolé, Je pensais qu'un morceau du prog en VBA suffisait.
Le problème se situe dans les onglets feuillemodèle (avec le graphique), dans l'onglet DKP2500x1250x5 générée par le VBA et dans les variables 'graphAbsfeuillemodèle', 'graphOrdfeuillemodèle' et les variables générées par le VBA 'graphAbsfeuillemodèle',
'graphOrdDKP2500x1250x5','graphAbsDKP2500x1250x5'. Le but est de créer un graphique glissant à l'aide de la date du jour et du nombre de mois défini en AA73 de l'onglet DKP2500x1250x5

A+
 

Pièces jointes

Re : problème de nom de variable dans un graphique

Ouais, bon, j'ai un peu regardé mais...
La partie délicate devrait pouvoir s'écrire comme ça si j'ai bien compris:
VB:
    ThisWorkbook.Names.Add "titrescolonnes" & nom, RefersTo:="='" & nom & "'!" & ad
    ThisWorkbook.Names.Add "totaux" & nom, RefersTo:="='" & nom & "'!" & ad1
    ThisWorkbook.Names.Add "stockdesécurité" & nom, RefersTo:="='" & nom & "'!" & ad2
    ThisWorkbook.Names.Add "graphAbs" & nom, RefersTo:="=OFFSET('" & nom & "'!$X$6,MATCH('" & nom & "'!$AA$72,'" & nom & "'!$X$7:$X$65536,0),0,-'" & nom & "'!$AA$73,1)"
    ThisWorkbook.Names.Add "graphOrd" & nom, RefersTo:="=OFFSET('" & nom & "'!$Y$6,MATCH('" & nom & "'!$AA$72,'" & nom & "'!$X$7:$X$65536,0),0,-'" & nom & "'!$AA$73,1)"
    ThisWorkbook.Names.Add "graph" & nom, RefersTo:="='" & nom & "'!" & ad5
    ThisWorkbook.Names.Add "masse" & nom, RefersTo:="='" & nom & "'!" & ad6
Mais à mon avis vous vous êtes bien fatigué pour rien.
Donnez donc des noms courts au niveau classeur pour la feuille modèle sans le suffixe "feuillemodèle"
et copiez tout simplement la feuille, quitte à faire ensuite Cells.value = Cells.Value pour tout figer.
Les noms seront alors repris tels quels sans rien avoir à changer, mais, et ceci est très important, en tant que noms définis au niveau de la feuille cette fois, puisqu'il ne peut y avoir deux nom identiques définis au niveau classeur.
À+
 
Re : problème de nom de variable dans un graphique

J'ai fait un essai, mais le code plante sur toutes les lignes sauf sur les lignes Graphabs & Graphord. Du coup j'ai gardé l'ancien code pour les autres ligne et ça fonctionne. Par contre le graphique ne fonctionne toujours pas, il est piloté par la feuille modèle au lieu de la nouvelle feuille
A+
HTML:
With Sheets("feuillemodèle") 'Création des noms des constantes
    .Cells.Copy Sheets(nom).Cells
    Ligne = .Range("totauxfeuillemodèle").Row
    ad = .Range("titrescolonnesfeuillemodèle").Address
    ad1 = .Range("totauxfeuillemodèle").Address
    ad2 = .Range("stockdesécuritéfeuillemodèle").Address
    ThisWorkbook.Names.Add "graphAbs" & nom, RefersTo:="=OFFSET('" & nom & "'!$X$6,MATCH('" & nom & "'!$AA$72,'" & nom & "'!$X$7:$X$65536,0),0,-'" & nom & "'!$AA$73,1)"
    ThisWorkbook.Names.Add "graphOrd" & nom, RefersTo:="=OFFSET('" & nom & "'!$Y$6,MATCH('" & nom & "'!$AA$72,'" & nom & "'!$X$7:$X$65536,0),0,-'" & nom & "'!$AA$73,1)"
    ad5 = .Range("graphfeuillemodèle").Address 'ajout le 11/04
    ad6 = .Range("massefeuillemodèle").Address 'ajout le 21/07
    End With
 
Re : problème de nom de variable dans un graphique

Bonjour
Essayez comme ça:
VB:
With Sheets("feuillemodèle") 'Création des noms des constantes
    .Cells.Copy Sheets(nom).Cells
    Ligne = .Range("totauxfeuillemodèle").Row
    ad = .Range("titrescolonnesfeuillemodèle").Address
    ad1 = .Range("totauxfeuillemodèle").Address
    ad2 = .Range("stockdesécuritéfeuillemodèle").Address
'    ad3 = .Range("graphAbsfeuillemodèle").Address 'ajout le 04/04
'    ad4 = .Range("graphOrdfeuillemodèle").Address 'ajout le 04/04
    ad5 = .Range("graphfeuillemodèle").Address 'ajout le 11/04
    ad6 = .Range("massefeuillemodèle").Address 'ajout le 21/07
End With
Rem Nomination du titre de la feuille et des zones en fonction des constantes
    ThisWorkbook.Names.Add "titrescolonnes" & nom, RefersTo:="='" & nom & "'!" & ad
    ThisWorkbook.Names.Add "totaux" & nom, RefersTo:="='" & nom & "'!" & ad1
    ThisWorkbook.Names.Add "stockdesécurité" & nom, RefersTo:="='" & nom & "'!" & ad2
    ThisWorkbook.Names.Add "graphAbs" & nom, RefersTo:="=OFFSET('" & nom & "'!$X$6,MATCH('" & nom & "'!$AA$72,'" & nom & "'!$X$7:$X$65536,0),0,-'" & nom & "'!$AA$73,1)"
    ThisWorkbook.Names.Add "graphOrd" & nom, RefersTo:="=OFFSET('" & nom & "'!$Y$6,MATCH('" & nom & "'!$AA$72,'" & nom & "'!$X$7:$X$65536,0),0,-'" & nom & "'!$AA$73,1)"
    ThisWorkbook.Names.Add "graph" & nom, RefersTo:="='" & nom & "'!" & ad5
    ThisWorkbook.Names.Add "masse" & nom, RefersTo:="='" & nom & "'!" & ad6
    .Range("h5") = TextBox7
    .Range("totaux" & nom).Replace what:="feuillemodèle", replacement:=nom, LookAt:=xlPart, SearchOrder:=xlByRows
    Range("T9").Select
    ActiveCell.FormulaR1C1 = "6"
    ActiveSheet.ChartObjects("Chart 8").Activate
    ActiveChart.SeriesCollection(1).Select
    ActiveChart.SeriesCollection(1).Formula = "=SERIES(,'" & nom & "'!graphAbs" & nom & ",'" & nom & "'!graphOrd" & nom & ",1)"
À+
 
Re : problème de nom de variable dans un graphique

ça plante sur la dernière ligne: ActiveChart.SeriesCollection(1).Formula = "=SERIES(,'" & nom & "'!graphAbs" & nom & ",'" & nom & "'!graphOrd" & nom & ",1)"

C'est mon problème depuis le début
A+

P.S. Je pars en congé de ce soir jusqu'au 21 août inclus.
Je ne pourrai pas reprendre le fil de cette discussion avant.

Bonne vacances
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…