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

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)"
 

Dranreb

XLDnaute Barbatruc
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:

lobinho01

XLDnaute Nouveau
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 ..

@ +
 

Dranreb

XLDnaute Barbatruc
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é.
À+
 

lobinho01

XLDnaute Nouveau
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+
 

Dranreb

XLDnaute Barbatruc
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: À+
À+
 

lobinho01

XLDnaute Nouveau
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

  • gestionstock-2.zip
    229.4 KB · Affichages: 38

Dranreb

XLDnaute Barbatruc
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.
À+
 

lobinho01

XLDnaute Nouveau
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
 

Dranreb

XLDnaute Barbatruc
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)"
À+
 

lobinho01

XLDnaute Nouveau
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
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…