1 Graphique / personne : macro ?

Bonjour,

J'ai une base de données avec des informations pour chaque personne sur différentes années.

Je voudrais faire un graphique pour chacun.

Cependant, je pense qu'il y a une astuce avec les Macros pour que je fasse le graphique 1 fois et qu'après ca se fasse presque automatiquement pour les autres...

Comme je sais que c'est plus clair avec une PJ la voici.

1er onglet = ma base de données

2e onglet = graphique pour 1 personne => que je souhaiterais pour tous

J'en profite pour savoir s'il est possible de faire un graphique avec toutes les personnes relevant du même pôle (et si je fais des tris, que le graph ne changent pas du fait du changement des références des cellules...)

Merci à vous !

34test.zip (8.71 Ko)

Bonjour,

Un truc dans le genre cela te va ?

Par contre cela créé des onglets avec le nom des personnes, je ne gère pas si l'onglet est deja créé, mais cela est possible.

Pour faire des graphique avec les personnes du même pole c'est aussi possible (presque tout est possible), mais cela demande plus de travail, je ne pense pas avoir le temps aujourd'hui...

Sub Macro4()

Dim workbname As String

Dim wsin As Worksheet

Dim i As Integer

Dim nbcolonnemax As Integer

Dim nbnommax As Integer

'*******************************************************************************

workbname = ActiveWorkbook.Name

Set wsin = Workbooks(workbname).Worksheets("BDD")

'determine la plage des données (si plus d'année que 2011 par exemple)

i = 3'Ici commence les années

While wsin.Cells(1, i) <> ""

i = i + 1

Wend

nbcolonnemax = i - 1

'Determine le nombre de nom a faire

i = 2

While wsin.Cells(i, 2) <> ""

i = i + 1

Wend

nbnommax = i - 1

For i = 2 To nbnommax

Charts.Add

ActiveChart.ChartType = xlLineMarkers

ActiveChart.SetSourceData Source:=Sheets("BDD").Range("G15")

ActiveChart.SeriesCollection.NewSeries

ActiveChart.SeriesCollection(1).XValues = "=BDD!R1C3:R1C" & nbcolonnemax

ActiveChart.SeriesCollection(1).Values = "=BDD!R" & i & "C3:R" & i & "C" & nbcolonnemax

ActiveChart.SeriesCollection(1).Name = "=" & Chr(34) & "Salaires :" & wsin.Cells(i, 2) & Chr(34)

ActiveChart.Location Where:=xlLocationAsNewSheet, Name:=wsin.Cells(i, 2)

With ActiveChart

.HasTitle = True

.ChartTitle.Characters.Text = "Salaires : " & wsin.Cells(i, 2)

.Axes(xlCategory, xlPrimary).HasTitle = True

.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Annees"

.Axes(xlValue, xlPrimary).HasTitle = True

.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Salaires"

End With

Sheets("BDD").Select

Next

End Sub

Bonsoir

Voic un petit exemple de ce qui peut etre réalisé.

ta feuille BDD

Une feuille avec une liste déroulante, qui permet d'afficher le graphique de la personne que l'on souhaite

Une feuille Pole qui à un tcd et un graphique, si la base de donnée change, il suffit de cliquer sur la cellule A1 de la feuille base pour effacer la feuille pole et de la recreer en automatique grace à la macro, ensuite avec ce TCD tu peux filtrer par service.

49gtestpole.zip (16.26 Ko)

Bonjour,

@Bigdams : j'essaie de l'intégrer à mon fichier là ou on écrit les codes VBA mais il a pas l'air d'aimer

@CB60: Ca m'a l'air super ces présentations ! Sauf que je connais pas les manip pour modifier la liste dans le menu déroulant. Pour le graphique issu du tableau croisé dynamique, pourrais-tu m'indiquer comment modifier les données sources ?

Merci beaucoup pour votre aide,

Re

Pour le TCD, en cellule B1, il suffit de selectionner le pole que tu souhaite afficher en graphique, le tcd se met à jour ainsi que le graph.

Pas besoin de toucher à ta base.

J'ai fais en sorte que se soit évolutif en ligne et en colonne.

En effet, j'ai réussi pour le TCD.

Pour l'onglet choix personne,comment je peux modifier le menu déroulant sans modifier le graphique (années... qui sont nikels) ?

Merci !

Re

je comprend pas trop, la il suffit de cliquer sur la cellule A3 et de choisir le nom de la personne que tu souhaite afficher sur le graphique.

Si tu souhaite autre chose dis le???

Quand tu l'intègres tu as une message d'erreur ?

Il suffit normalement de le mettre dans un module.

Dis moi quels erreurs tu rencontres ?

Bigdams

Bonjour Bigdams,

En fait, je ne sais pas comment remplir les parties manquantes dans le VBA.

j'ai remplacé détermine la plage par 'B2 H139

et le "Détermine le nombre de nom a faire " par 160

Puis il m'indique une erreur sur :

Set wsin = Workbooks(workbname).Worksheets("BDD") "= n'appartient pas à la sélection".

Pour info, mes données vont de B2 à H139

Merci pour ton aide,

Rechercher des sujets similaires à "graphique personne macro"