Aller chercher des indices dans une case
Résolu
gerard
-
gerard -
gerard -
Bonjour,
Sous Excel, je souhaiterai aller chercher une référence dans une case pour l'intégrer dans la formule que définit la zone de données d'un graphique.
Le cas concret est:
Données sources du graphique, dans la feuille "Evolution':
='Evolution'!$B$1:$W$3
J'amerais automatiser cette formule pour qu'en mettant par exemple le chiffre 4 dans la case A1 de la feuille 'Evolution', la formule
='Evolution'!$B$1:$W$fonction(va chercher la valeur en 'Evolution'!A1)
soit comprise dans le champ du graphique comme étant
='Evolution'!$B$1:$W$4
Merci d'avance !
Sous Excel, je souhaiterai aller chercher une référence dans une case pour l'intégrer dans la formule que définit la zone de données d'un graphique.
Le cas concret est:
Données sources du graphique, dans la feuille "Evolution':
='Evolution'!$B$1:$W$3
J'amerais automatiser cette formule pour qu'en mettant par exemple le chiffre 4 dans la case A1 de la feuille 'Evolution', la formule
='Evolution'!$B$1:$W$fonction(va chercher la valeur en 'Evolution'!A1)
soit comprise dans le champ du graphique comme étant
='Evolution'!$B$1:$W$4
Merci d'avance !
Configuration: Windows XP Internet Explorer 6.0
6 réponses
-
Je ne sais pas si ma question a été très claire. En gros, dans l'exemple précédent, j'aimerais simplement que le nombre 3 à la fin de la formule
='Evolution'!$B$1:$W$3
puisse être allé cherché dans une case, et être ainsi modifiable automatiquement.
Merci-
Bonsoir,
Tu colle la macro ci-dessous dans un module (VBA).. Alt+F11Function MyMacroPlage() Dim FL1 As Worksheet Dim Ad As String Application.Volatile Set FL1 = Worksheets("Feuil1") If FL1.Range("A1").value < 1 then exit Function Ad = "='Evolution'!$B$1:$W$" & FL1.Range("A1") ActiveSheet.ChartObjects(ActiveSheet.ChartObjects.Count).Activate ActiveChart.SetSourceData Source:=Range(Ad) FL1.Range("A1").Select End Function
Changer Feuil1 par le nom de la feuille où est le graph.
Set FL1 = Worksheets("Feuil1")
Retour dans Excell..
Dans la cellule A2 tu met
=MyMacroPlage()
ensuite tu tape le nombre que tu veux dans A1
Si pas de modif tu tape F9
A+
-
-
Merci beaucoup pour la réponse !
Petite question subsidiaire: si la case qui contient l'info n'est pas dans Feuil1, quelle manip doit être faite ? J'ai essayé quelque chose, mais il n'a pas l'air d'apprécier...-
Pas de problème, tu change la ligne..
Ad = "='Evolution'!$B$1:$W$" & FL1.Range("A1")
par..Ad = "='Evolution'!$B$1:$W$" & Sheets("LeNomDeLaFeuille").Range("A1")
Mais regarde la macro j'ai fait un changement entretemps.
EDIT:
Mais alors pour éviter les erreurs il faut aussi changer cette ligne de la même facon..If FL1.Range("A1").value < 1 then exit Function
parIf Sheets("LeNomDeLaFeuille").Range("A1").value < 1 then exit Function
-
-
Apparemment le fait que Feuil1 ne soit pas une véritable feuille mais un graphique (Graph1), la ligne
Set FL1 = Worksheets("Graph1")
ne veut pas compiler et renvoie l'erreur "L'indice n'appartient pas à la sélection" -
Wouahhh, ca t'a pas dit que c'était une feuille graph..
Je refais la macro et.. Minute
Ou Plutôt dit-moi..
Le nom de la feuille Graph
Le nom de la feuille où sont les données du graph
Le nom de la feuille où tu prend A1
Comme ca je pourais la faire directement fonctionnelle. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bon, je vais au dodo, alors voila la macro, adapte le nom des feuilles..
Sub MyMacroPlage() Dim Ad As String Dim Lig As Integer Application.Volatile Lig = Sheets("Feuil1").Range("A1") Ad = "='Evolution'!$B$1:$W$" & Lig Sheets("Graph1").SetSourceData Source:=Range(Ad) End Sub
NB: Impossible d'activer la feuille graph dans cette macro, faut donc clic sur l'onglet pour la voire.
A+
-