-
Graph et range variable
Bonsoir,
Actuellement je recherche la solution au problème suivant : j'utilise un fichier qui possède un graphique dont une de ses séries dépend des valeurs de X cases placées dans une colonne. Le soucis, c'est que ces cases ne sont pas forcément remplies jusqu'au bas de la colonne "données" (elles sont la recopie d'une feuille selectionnée par un menu) et que pour rendre cohérent l'ensemble du graphique (une courbe temporelle servant de target + une autre apparaissant point par point suite à différents TOP donnés), je dois trouver une astuce me permettant de pointer la fin des données pour la dite série. En cas inverse je suis obligé de recopier le dernier timing dans les cases vides, créant ainsi en fin de courbe un graph n'ayant pas de signification. Connaissez-vous un moyen pour contourner ce problème ? Codes, VBA (...)
Merci d'avance pour votre précieux retour à ce propos
Laurent
-
Bonsoir
Pourrais-tu joindre une image du graphique et une du tableau source?
-
Salut
si la fin de ta série est vide
tu peut employer la fonction decaler dans insertion nom definir
tu mets le nom de ta série nomserie (par ex)
dans le champ en bas
= decaler(premierecellule;0;0;nbval(prem.cell:même_col_cel5000);1)
tu entres dans la serie du graphique
tu remplaces ={1} par =nomclasseur.xls!nomserie
deuxieme solution
ta série est liée à d'autres et il te faut un nombre de valeur constant
tu crées une autre colonne avec en formule = si(b2="";na();b2) et tu tires vers le bas cette colonne sera celle qui servira pour la série le NA# ne se marque pas dans un graphique (si b2 est la premiere cellule de tes données)
Cordialement
Daranc
-
Le problème c'est que la longueur de ma série peut varier. Actuellement ma "colonne" données est une recopie de cases d'une feuille parmis d'autres sélectionnées avec la fonction INDIRECT. La colonne "données" pour le graph possède des cellules dont le format est déclaré en "date" (aaaa/mm/jj hh:30). Une recopie d'une cellule vide amenant un "0 janvier 1900" plantant l'échelle et la cohérence de mon graph. Perso je voyais l'utilisation d'une fonction INDIRECT dans le range mais je ne sais pas faire ou définir la fin variable d'un range (début de données fixe - fin variable)... Je vais essayer de revenir sur le forum en fin d'am pour amener une visu de mon formulaire. Ce sera ainsi plus facile pour moi d'essayer de me faire comprendre avec mes explications laborieuses lol
Merci à vous 2 ... à bientôt
Laurent
-
1 pièce(s) jointe(s)
Voici avec un peu de retard la visu du formulaire :
La case rouge en haut à gauche donne le nom d'une feuille suite à un menu déroulant...le timing dans la colonne rouge de droite est une recopie de cette feuille avec la fonction INDIRECT...les dernières valeurs sont présentes mais invisibles (fond et police caractère de même couleur) pour éviter le fameux "0 janv 1900" mais ceci amene un méplat en fin de graph. Les points bleus font suite quant à eux à des validations "check-list", module après module (UserForms et CommandBouton associés).
Voilà pour l'image...J'essayerai demain ta fonction Daranc ;)
Bonne soirée à vous
-
Salut
je pense que le truc sera =si(indirect(l'adresse)="";na();indirect(l'adresse))
Daranc
-
tu veux bien m'expliquer en détails stp ? Tu veux faire ça dans le RANGE, ailleurs ? Quel est le détail de cette formule (na, autre...)
PS (je dédute le VBA depuis un mois lol c'est pas gagné je sais)
-
J'ai essayé la fonction "decaler" mais a priori il s'agit d'une commande en anglais (au travail j'ai un excel 2003 et un office qui n'est pas en français). Quelqu'un peut m'indiquer son homologue outre-manche, la signification de sa formule voire l'endroit où rechercher de telles informations ?!?
Merci d'avance pour ces informations (je cale sur ce pb depuis un moment...)
Laurent
-
bonsoir
l'équivalent anglais est OFFSET
Comment nommer la base de données (Plage de cellules) dynamiquement ?
pour retrouver facilement la traduction anglaise d'une fonction, saisit ta formule ent A1 et utilise la macro suivante:
Code:
MsgBox Range("A1").Formula
bonne soirée
michel
-
Merci Michel :) Je vais essayer ça dès que possible !
Bonne soirée
Laurent
-
Salut
dans la barre menu
insertion
nom
definir
dans le champ en haut maserie
dans le champ en bas =decaler(clic cellule_target;1;0;nbval(colonne cellule_target )-1;1)
ok
tu verifie en faisant insertion nom definir
clic sur maserie
clic sur le carre d'adresse en bas à droite la zone de la série doit être entourée
pour le graphique il faut lui donnée comme donnees Y =nom_classeur.XLS!maserie
-
Merci Daranc...j'essayerai ta formule demain...celle que j'ai créée à partir du cours ne fonctionne pas (carré adresse inactif).
A quoi correspond tes valeurs 1, 0 et -1 ? Je sais pour le dernier 1 : il indique l'utilisation d'une seule colonne. Mais pour le reste mystère pour un non initié...
Merci d'avance
Laurent
-
j'ai essayé les 2 formules. Celle adaptée du cours et celle de Daranc... Aucune ne fonctionne : La saisie est OK mais le carré "adresse" ne montre rien et ce même avec la première case remplie :(
-
ce fichier peut il t'aider
-
Merci Daranc pour ce fichier mais j'ai réussi à trouver auparavant la solution en testant à l'aveugle différentes saisies et en cachant 2 premières cases sur mon formulaire (la fonction OFFSET ne peut à priori partir d'une case vide). Je peux amener le dit code plus tard sur ce forum si cela intéresse quelqu'un (...)