MAJ automatique graphique Excel avec données à l'horizontal

Fermé
John75-3 - 22 avril 2016 à 12:10
 John 75-3 - 13 mai 2016 à 11:42
Bonjour à tous,

Après plusieurs recherches sur le net et sur CCM, j'ai trouvé une solution pour mettre à jour automatiquement un graphique Excel au fur et à mesure que j'ajoute des données. Voici la fonction sur laquelle je me base : =DECALER(A1;0;0;NBVAL($A:$A)-1)

Je lie ensuite les données de mon graphique avec mes formules et la MAJ se fait automatiquement.

Le problème c'est que cela fonctionne très bien si mes données sont inscrites verticalement. Par exemple, en A1, je mets MOIS et en A2 je mets CA. Si j'inscris les données correspondantes en-dessous de chacune de ces deux cellules, le graphique se met parfaitement à jour. En revanche, si je mets mes données à l'horizontal, cela ne fonctionne plus du tout. Peu importe les modifications que j'effectue dans la formule, le graphique reste "bloqué" sur un traitement vertical.

Dans la formule, j'ai tenté de remplacer cette partie ($A:$A) par ($3:$3) en me disant que le balayage s'effectuerait par ligne et non plus par colonne. Hors, cela ne fonctionne toujours pas.

Est-ce que quelqu'un aurait une solution SVP ? Cela m'aiderait beaucoup à traiter une base existante.

Un grand merci,

John
A voir également:

6 réponses

tontong Messages postés 2563 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 17 octobre 2024 1 058
22 avril 2016 à 13:52
Bonjour,
Tout est dans la définition des arguments de Decaler.
DECALER(référence;décalageNbLignes;décalageNbColonnes;hauteur;largeur)
Hauteur=1
Largeur =NBVAL($3:$3)-1
=DECALER(A1;0;0;1;NBVAL($3:$3)-1)
0
Bonjour Tontong,

Un grand merci ! Ca marche au top :)

John
0
Problème résolu mais j'en profite pour demander une autre petite chose SVP : si dans ma base j'ai des #NA , existe-t-il une solution pour que la formule n'en tienne pas compte et puisse mettre à jour le graphique uniquement s'il y a des données chiffrées ?

Merci,

John
0
tontong Messages postés 2563 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 17 octobre 2024 1 058
22 avril 2016 à 18:15
La solution la plus simple serait de passer par un tableau auxiliaire qui compile les données x et y hors #NA.
0
Merci pour la réponse !

Si je comprends bien, il faudrait, en gros, faire un tableau intermédiaire qui traiterait les #NA du tableau source et renverrait une autre valeur telle que 0 par exemple ?

Du coup, je n'aurais plus qu'à modifier la formule en la basant sur ce tableau intermédiaire. Puis, lui demander de les exclure lors de la MAJ automatique du graphique ?

Si c'est ça, je suppose qu'il faut ajouter "<>0" à la place de -1 ? (guillemets comprises)

Il y a peut-être une solution plus simple ?

Merci encore,

John
0
tontong Messages postés 2563 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 17 octobre 2024 1 058
22 avril 2016 à 20:36
Je voyais plus un truc comme ça:
http://www.cjoint.com/c/FDwsJKxfKEF
0
Merci Tontong pour la réponse. J'avoue avoir du mal à comprendre la formule et à l'appliquer horizontalement.

Je comprends le mécanisme mais l'adapter est un peu plus dur. Je vais faire des essais.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tontong Messages postés 2563 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 17 octobre 2024 1 058
25 avril 2016 à 13:29
Bonjour,
Avec une feuille horizontale vous comprendrez mieux le procédé et les formules pour adapter à vos références.
http://www.cjoint.com/c/FDzlAeR0iGF
0
Merci beaucoup Tontong. Effectivement, c'est plus clair. J'essaie de l'appliquer sur un graphique avec 3 types de données (temps, données x, données y).

Je reviens vers vous pour vous dire si ça fonctionne correctement.
0
tontong Messages postés 2563 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 17 octobre 2024 1 058
25 avril 2016 à 18:38
Notez que les champs x et y, nommés avec Decaler, utilisent le même argument pour définir la largeur. Cet argument n'est pas calculé avec Nbval() mais avec NB() qui ne compte que les valeurs numériques.
0
Merci Tontong. Oui, effectivement c'est la différence que j'ai constatée. En tout cas, ça fonctionne. Il me reste un dernier détail.

En fait, pour être parfaitement clair, je souhaite comparer les performances des ventes de plusieurs marques sur différentes semaines (S1, S2 etc.). Je compare chaque marque au total marché (exprimé en points de PDM). Du coup, cela donne un graphique, type aire, qui comporte 3 variables.

Dans la fonction que vous me donnez, je peux remplacer manuellement les 1, 2, 3 par S1, S2 etc. ou alors lier les données du graphique avec une autre plage comprenant ces informations. Mais du coup, ça ne marche plus.

Evidemment, je ne peux pas laisser 1, 2, 3 à la place de S1, S2, S3. Mon entreprise ne voudra pas.

Est-ce qu'il existerait une solution ?

Merci encore, ça m'aide beaucoup.
0
tontong Messages postés 2563 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 17 octobre 2024 1 058
29 avril 2016 à 12:07
Bonjour,
Pouvez-vous joindre un fichier réel ou simplifié pour exprimer clairement le besoin. Utilisez le site de Cjoint.com pour créer un lien et copier ce lien dans le prochain message.
0
Bonjour Tontong et désolé pour le temps de réponse. Je n'ai pas réussi à mettre le fichier sur le site Cjoint.com. Du coup, je l'ai uploadé sur WT : https://we.tl/KezSQbY6hk

J'espère que l'exemple sera clair.
0
Bonjour Tontong,

J'ai réussi à trouver la solution. J'ai créé un tableau intermédiaire avec =SI(la_cellule_contenant_les_chiffres<0;nom_du_mois;0).

Merci pour votre aide.

John
0