VBA / Excel - Mise à jour de graphique

Nicolas -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai créé un fichier excel pour du reporting au travail.
J'ai huit courbes sur une feuille.
Chaque semaine je l'ai met à jour c'est à dire que pour chaque série de chaque courbe je reselectionne les données afin d'avoir toujours une plage de 20 données.

J'ai réussi à faciliter cette mise à jour grâce à une macro. Je me suis enregistré pendant que je changer mes données. Maintenant en faisant du contrôle + F et en remplaçant B45 par B46 par exemple je modifie tout.
Seulement maintenant je voudrais compléter la macro de façon à taper 46 dans une case et que le changement soit automatique.

Si quelqu'un à des suggestions.....

Merci d'avance

1 réponse

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    A la place de vba tu peux te faire un graphique dynamique en définissant tes plages dans des noms (avec decaler() ) et en utilisant ces noms dans la définition de la serie().

    Ex:
    Si tu sélectionnes une courbe tu lis dans la barre de formule :
    =SERIE(Feuil1!$B$1;Feuil1!$A$2:$A$23;Feuil1!$B$2:$B$23;1)
    On va redéfinir Feuil1!$A$2:$A$23 en dynamique et le nommer dates
    et Feuil1!$B$2:$B$23 en le nommant val1

    'insertion / noms / définir...' puis :
    'nom dans le classeur' : dates 'fait référence à' : =DECALER(Feuil1!$A$1;NBVAL(Feuil1!$A:$A)-20;0;20;1)
    cliquer sur ajouter
    'nom dans le classeur' : dates 'fait référence à' : =DECALER(Feuil1!$B$1;NBVAL(Feuil1!$B:$B)-20;0;20;1)

    tu sélectionne ta courbe dans le graphique et dans l'édition des formules tu remplaces les plages par leur nom pour obtenir :
    =SERIE(Feuil1!$B$1;Feuil1!dates;Feuil1!val1;1)
    (bien mettre le nom de la feuille Feuil1 ayant les données)

    qu'excel transforme en :
    =SERIE(Feuil1!$B$1;'Graph Dynamique.xls'!dates;'Graph Dynamique.xls'!val1;1)

    Dès que tu ajoutes une donnée elle est prise en compte, et le graphique se limite aux 20 dernières données.

    exemple

    eric
    2