Données source faisant référence à une cellule pour le chemin

nat54

XLDnaute Barbatruc
Bonjour,

Pas simple de trouver un titre explicite ..

Mon problème :
- 1 fichier TdB_chiffres, des onglets extractions puis 1 onglet par pôle soit 31 onglets pour les pôles
- 1 fichier TdB_graphes où je veux obtenir un onglet par pôle
Chaque pôle est présenté par 16 graphes !
J'ai fait le travail une fois pour un pôle
Résultat satisfaisant

or si l'on compte il me reste 16*30 soit 480 graphes :eek::eek:

J'ai pensé à une chose : peut-on dans données source du graphique faire référence à une cellule de l'onglet en question

exemple
je suis dans le fichier TdB_graphique sur l'onglet concernant le pôle A
données source va dans fichier TdB_chiffres onglet pôle A comme suit
='I:\....\[TdB_chiffres]Pôle_A'!a1:a2

mon idée serait de mettre dans une cellule du fichier tdb_graphes
(une cellule par onglet) le chemin présenté ci-dessus

ainsi j'aurais seulement une cellule par onglet à modifier !!

est-ce faisable ?

Merci !

Nat
 

Pierrot93

XLDnaute Barbatruc
Re : Données source faisant référence à une cellule pour le chemin

Bonjour Nat, PierreJean

petite idée au passage, pourquoi ne pas utiliser des plages nommées !!! barre de menu => insertion => nom => Définir, et y faire référence ensuite pour identifier la source...

bon après midi
@+
 

nat54

XLDnaute Barbatruc
Re : Données source faisant référence à une cellule pour le chemin

Bonjour Pierrot93,

pourrais-tu expliciter ton idée de plages nommées (je connais le principe mais je ne vois pas comment il peut m'aider dans mon cas...) ??

ci-joint les fichiers en espérant que ça éclaire pierrejean
(les fichiers sont ultra-simplifiés !!)
 

Pièces jointes

  • Les_2_fichiers.zip
    27.8 KB · Affichages: 106
  • Les_2_fichiers.zip
    27.8 KB · Affichages: 110
  • Les_2_fichiers.zip
    27.8 KB · Affichages: 115

pierrejean

XLDnaute Barbatruc
Re : Données source faisant référence à une cellule pour le chemin

Re

Salut Pierrot (j'aurais jamais cru voir ça : Pierrot qui n'a pas saisi !!)
Désolé Nat mais moi je ne connais que le Vba
teste ceci ( le fichier tdb chiffres... doit etre ouvert)

Edit : Il va sans dire qu'une fois les graphes construits on peut supprimer la feuille et le module !!!
 

Pièces jointes

  • TdB_graphes.zip
    22.5 KB · Affichages: 111
  • TdB_graphes.zip
    22.5 KB · Affichages: 106
  • TdB_graphes.zip
    22.5 KB · Affichages: 106
Dernière édition:

nat54

XLDnaute Barbatruc
Re : Données source faisant référence à une cellule pour le chemin

Merci, je viens de tester

erreur d'éxécution 1004
impossible de définir la propriété XValues de la classe Series

??

pourtant ça a l'air de marcher mais je n'aime pas ce genre "d'alerte"...


Pierrot, tu me déçois LOL
 
Dernière édition:

nat54

XLDnaute Barbatruc
Re : Données source faisant référence à une cellule pour le chemin

ps : je ne comprends pas le fonctionnement de la macro

>> où dit-on à notre cher excel :D qu'il doit chercher en A1 ??

>> comment savoir le n° shapes(1) du graphique ? là il n'y en avait qu'un mais je vais devoir faire ça pour 16 !

on pourra faire une boucle ?!
 

pierrejean

XLDnaute Barbatruc
Re : Données source faisant référence à une cellule pour le chemin

Re
1) Erreur d'execution probablement parceque le fichier associé n'est pas ouvert
2) L'execution part de la sub suivante ou A1 dans ce cas est la .Value de la selection

Code:
Private Sub CommandButton1_Click()
 Call test(Selection.Value)
End Sub

3) oui il est bien sur possible de faire une boucle gene

Code:
for n=2 to range("A65536").end(xlup).row
  call test(range("A" & n))
next n

en ayant inscrit tous les 'poles' dans la colonne A a partir de la ligne 2

4)dans le code
Code:
Sub test(pole As String)
Sheets.Add.Name = "graphs_pole_" & pole
ActiveSheet.Range("C4").Select
Sheets("graphs_pole_A").Shapes(1).Copy
ActiveSheet.Paste
 ActiveChart.SeriesCollection(1).XValues = _
        "=[TdB_chiffres_factices.xls]pole_" & pole & "!R5C3:R12C3"
    ActiveChart.SeriesCollection(1).Values = _
        "=[TdB_chiffres_factices.xls]pole_" & pole & "!R5C4:R12C4"
    ActiveChart.SeriesCollection(2).XValues = _
        "=[TdB_chiffres_factices.xls]pole_" & pole & "!R5C3:R12C3"
    ActiveChart.SeriesCollection(2).Values = _
        "=[TdB_chiffres_factices.xls]pole_" & pole & "!R5C5:R12C5"
 Sheets("graphs_pole_A").Cells.Copy
 Sheets("graphs_pole_" & pole).Cells.Select
 Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
 ActiveWindow.Zoom = 80
 ActiveWindow.DisplayGridlines = False
 Application.CutCopyMode = False
End Sub

"=[TdB_chiffres_factices.xls] ...
doit etre adapté au fichier réél
 

nat54

XLDnaute Barbatruc
Re : Données source faisant référence à une cellule pour le chemin

Re
1) Erreur d'execution probablement parceque le fichier associé n'est pas ouvert
exact

2) L'execution part de la sub suivante ou A1 dans ce cas est la .Value de la selection

Code:
Private Sub CommandButton1_Click()
 Call test(Selection.Value)
End Sub
mouais pas tout compris


3) oui il est bien sur possible de faire une boucle gene

Code:
for n=2 to range("A65536").end(xlup).row
  call test(range("A" & n))
next n

en ayant inscrit tous les 'poles' dans la colonne A a partir de la ligne 2
je pensais plutôt à une boucle pour mes 16 graphes
car là comment faire pour copier-coller les 16 ?
le N° de shapes(x) va de 1 à 16 ?

4)dans le code
Code:
Sub test(pole As String)
Sheets.Add.Name = "graphs_pole_" & pole
ActiveSheet.Range("C4").Select
Sheets("graphs_pole_A").Shapes(1).Copy
ActiveSheet.Paste
 ActiveChart.SeriesCollection(1).XValues = _
        "=[TdB_chiffres_factices.xls]pole_" & pole & "!R5C3:R12C3"
    ActiveChart.SeriesCollection(1).Values = _
        "=[TdB_chiffres_factices.xls]pole_" & pole & "!R5C4:R12C4"
    ActiveChart.SeriesCollection(2).XValues = _
        "=[TdB_chiffres_factices.xls]pole_" & pole & "!R5C3:R12C3"
    ActiveChart.SeriesCollection(2).Values = _
        "=[TdB_chiffres_factices.xls]pole_" & pole & "!R5C5:R12C5"
 Sheets("graphs_pole_A").Cells.Copy
 Sheets("graphs_pole_" & pole).Cells.Select
 Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
 ActiveWindow.Zoom = 80
 ActiveWindow.DisplayGridlines = False
 Application.CutCopyMode = False
End Sub

"=[TdB_chiffres_factices.xls] ...
doit etre adapté au fichier réél
ça j'avais compris LOL :D
 

pierrejean

XLDnaute Barbatruc
Re : Données source faisant référence à une cellule pour le chemin

Re

Je suis parti du principe que tous tes graphes ressemblaient au graphe pole A avec comme seule differenciation le nom de la feuille sosie de tdb_chiffres_factices.xls (qu'il y en 16 ou moins ou plus)
La macro copie donc systematiquement le graphe réalisé manuellement dans le fichier Tdb_graphes.xls feuille graphs_poleA puis modifie les series pour aller chercher dans le sosie de tdb_chiffres_factices.xls feuille pole_X
Compte tenu des 2 fichiers fournis ,je n'ai pas pu imaginer autre chose !!
Mais je suis a ta disposition pour modifier si necessaire
Quant a la boucle ,elle recupere successivement les noms des poles dans la colonne A de la feuille17 pour les transmettre en parametre a la macro test
en conclusion : Si tu as un fichier tdbchiffres avec n feuilles intitulées Pole_X similaires a la feuille pole_A il te faut reporter les noms des poles dans la colonneA de la feuil17 puis dans le module de la feuille 17 remplacer
Code:
Private Sub CommandButton1_Click()
 Call test(Selection.Value)
end sub
par

Code:
Private Sub CommandButton1_Click()
for n=2 to range("A65536").end(xlup).row
  call test(range("A" & n))
next n
End Sub
 

nat54

XLDnaute Barbatruc
Re : Données source faisant référence à une cellule pour le chemin

J'avais peut-être trop simplifier les fichiers-exemples :confused:

Les vrais fichiers :
- tdb_chiffres : 31 onglets (un par pôle, tous construits de la même manière)
- tdb_graphes : obtenir un onglet par pôle comprenant chacun 16 graphes
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 838
dernier inscrit
Christelle.B86