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:
Names, propriété
Voir aussi S'applique à Exemple Spécificités
Pour un objet Application, cette propriété renvoie une collection Names qui représente tous les noms contenus dans le classeur actif. Pour un objet Workbook, cette propriété renvoie une collection Names qui représente tous les noms contenus dans le classeur spécifié (y compris tous les noms spécifiques aux feuilles de calcul). Pour un objet Worksheet, cette propriété renvoie une collection Names qui représente tous les noms spécifiques aux feuilles de calcul (noms définis avec le préfixe "WorksheetName!"). Objet Names en lecture seule.

expression.Names

expression Obligatoire. Expression qui renvoie un des objets répertoriés dans la liste S'applique à.

Notes
Pour plus d'informations sur le renvoi d'un seul membre d'une collection, consultez Renvoi d'un objet à partir d'une collection.

L'utilisation de cette propriété sans identificateur d'objet correspond à l'utilisation de ActiveWorkbook.Names.

Exemple
Cet exemple montre comment définir le nom "myName" pour la cellule A1 de la feuille Sheet1.

ActiveWorkbook.Names.Add Name:="myName", RefersToR1C1:= _
"=Sheet1!R1C1"
À+
 
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é.
À+
 

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:
expression.Add(Name, RefersTo, Visible, MacroType, ShortcutKey, Category, NameLocal, RefersToLocal, CategoryLocal, RefersToR1C1, RefersToR1C1Local)

expression Obligatoire. Expression qui renvoie un objet Names.

Name Argument de type Variant facultatif. Obligatoire si vous n'avez pas spécifié NameLocal. Texte à utiliser comme nom (dans le langage de la macro). Les noms ne doivent pas contenir d'espace et ne doivent pas ressembler à des références de cellules.

RefersTo Argument de type Variant facultatif. Obligatoire à moins qu'un autre argument RefersTo ne soit spécifié. Décrit ce à quoi se rapporte le nom (dans le langage de la macro, notation style A1). Remarque Rien n'est renvoyé si la référence n'existe pas.

Visible Argument de type Variant facultatif. Affectez-lui la valeur True pour définir le nom normalement. Affectez-lui la valeur False pour définir le nom comme nom masqué (c'est-à-dire qu'il n'apparaît pas dans les boîtes de dialogue Définir un nom, Coller un nom ou Atteindre). Valeur par défaut : True.

MacroType Argument de type Variant facultatif. Type de macro, comme indiqué dans le tableau suivant :

Valeur Signification
1 Fonction définie par l'utilisateur (procédure Function)
2 Macro (ou procédure Sub)
3 ou non spécifiée Aucun (nom qui ne se réfère ni à une macro ni à une fonction définie par l'utilisateur)

ShortcutKey Argument de type Variant facultatif. Touche de raccourci de la macro. Il doit s'agir d'une seule lettre, telle que « z » ou « Z ». Ne s'applique qu'aux macros de commande.

Category Argument de type Variant facultatif. Catégorie de la macro ou fonction si l'argument MacroType a la valeur 1 ou 2. La catégorie est utilisée dans l'Assistant Fonction. La référence des catégories existantes est soit un nombre (à partir de 1), soit un nom (dans le langage de la macro). Microsoft Excel crée une nouvelle catégorie si la catégorie spécifiée n'existe pas encore.

NameLocal Argument de type Variant facultatif. Obligatoire si Name n'est pas spécifié. Texte à utiliser pour le nom (dans la langue de l'utilisateur). Les noms ne doivent pas contenir d'espace et ne doivent pas ressembler à des références de cellules.

RefersToLocal Argument de type Variant facultatif. Obligatoire à moins qu'un autre argument RefersTo ne soit spécifié. Décrit ce à quoi se rapporte le nom (dans la langue de l'utilisateur, notation style A1).

CategoryLocal Argument de type Variant facultatif. Obligatoire si l'argument Category n'est pas spécifié. Texte identifiant la catégorie d'une fonction personnalisée dans la langue de l'utilisateur.

RefersToR1C1 Argument de type Variant facultatif. Obligatoire à moins qu'un autre argument RefersTo ne soit spécifié. Décrit ce à quoi se rapporte le nom (dans le langage de la macro, notation style R1C1).

RefersToR1C1Local Argument de type Variant facultatif. Obligatoire à moins qu'un autre argument RefersTo ne soit spécifié. Décrit ce à quoi se rapporte le nom (dans la langue de l'utilisateur, notation style R1C1).
À+
À+
 

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
 

Statistiques des forums

Discussions
312 553
Messages
2 089 533
Membres
104 205
dernier inscrit
mehaya63