Bonjour,
En date du 06/03/2006, je vous faisais part d'un besoin.
J'ai bien eu des information, mais pas de solution.
Je re-tente une nouvelle demande Les informations complémentaires sont en italique.
Merci d'avance à tout qui pourra m'aider
Sur base d'un fichier OOO Calc constitué de cours de bourse ( > 100
titres suivis) je souhaite établir des graphiques d'évolution des cours
des-dits titres. Le mode de détermination de la plage de données servant
à établir le graphe est fixe - ex.: a1;a50 -
Vu l'ajout régulier de cours, le graphe ne se met pas automatiquement à
jour. Imaginez le boulot pour modifier les plages des > 100 titres
suivis.
Aux temps héroïques de LOTUS-1-2-3 sous DOS, il existait une "fonction"
très simple pour déterminer une plage "mobile". Dans l'exemple
ci-dessus, il suffisait d'écrire : a1;{end}{down} et le programme
reconnaissait la plage entière - suite ininterrompue - .
Aujourd'hui, je pédale dans la choucroute. J'ai bien lu dans le livre
EXCEL 2002 FORMULAS de John WALKENBACH une solution utilisant les
mots-clés OFFSET, COUNTA et SERIES.
Ces termes ont-ils un correspondant en OOo et quelle est leur
équivalence francisée?
Merci d'avance
mise à jour automatique de graphiques
Modérateur : Vilains modOOs
Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
-
- Fraîchement OOthentifié
- Messages : 3
- Inscription : 01 mars 2006 09:46
- Localisation : AYE - BELGIQUE
mise à jour automatique de graphiques
Georges-Albert BRESMAL
OOo 2.0 sous LINUX Kubuntu/Win XP SP2
OOo 2.0 sous LINUX Kubuntu/Win XP SP2
-
- IdOOle de la suite
- Messages : 25175
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: mise à jour automatique de graphiques
OFFSET = DECALERgabresmal a écrit :J'ai bien lu dans le livre EXCEL 2002 FORMULAS de John WALKENBACH une solution utilisant les mots-clés OFFSET, COUNTA et SERIES.
COUNTA = NBVAL
Je n'ai pas de fonction SERIES ni sous Calc, ni sous MS-Excel 2000. Peux-tu nous donner un descriptif de ce que fait celle-ci ?
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Améliorez AOO et votez pour les issues
-
- Grand Maître de l'OOffice
- Messages : 11276
- Inscription : 02 mai 2006 08:42
Bonjour
L'adaptation de la source de données d'un graphique peut être faite par une macro. Le code suivant peut paraître un peu complexe si on n'est pas initié aux macros, toutefois, il suffit de modifier dans ce code les valeurs des constantes situées au début.
Dans cet exemple je suppose que le graphique à modifier à été nommé (clic droit sur le graphique puis "nommer l'objet") "cours". Ceci est indispensable pour pouvoir "retrouver" le graphique dans la macro.
Ne connaissant rien aux cours de la bourse je ne "visualise" pas comment sont présentées les données. Je suppose aussi dans l'exemple que la source de données du graphique est A1:F
Nota :
- Ces références sont paramétrées par les constantes PysDebCol=0, PysDebLig=0, PysFinCol=5
- le numéro de ligne de fin est calculé par la macro
Le principe de la macro est le suivant :
- "aller" à la fin de la plage utilisée
- récupérer le numéro de ligne
- retrouver le graphique par son nom
- modifier le titre du graphique pour ajouter la date et l'heure
- modifier la plage source de données
L'adaptation de la source de données d'un graphique peut être faite par une macro. Le code suivant peut paraître un peu complexe si on n'est pas initié aux macros, toutefois, il suffit de modifier dans ce code les valeurs des constantes situées au début.
Dans cet exemple je suppose que le graphique à modifier à été nommé (clic droit sur le graphique puis "nommer l'objet") "cours". Ceci est indispensable pour pouvoir "retrouver" le graphique dans la macro.
Ne connaissant rien aux cours de la bourse je ne "visualise" pas comment sont présentées les données. Je suppose aussi dans l'exemple que la source de données du graphique est A1:F
Nota :
- Ces références sont paramétrées par les constantes PysDebCol=0, PysDebLig=0, PysFinCol=5
- le numéro de ligne de fin est calculé par la macro
Le principe de la macro est le suivant :
- "aller" à la fin de la plage utilisée
- récupérer le numéro de ligne
- retrouver le graphique par son nom
- modifier le titre du graphique pour ajouter la date et l'heure
- modifier la plage source de données
Code : Tout sélectionner
sub PysModifierGrapheCours
'Adapter le nom de la feuille, du graphe, du bloc source de données du graphe
const PysNomFeuille="Test", PysNomGraphe="cours", PysDebCol=0, PysDebLig=0, PysFinCol=5
dim PysClasseur as Object, PysFeuille as Object, PysGraph as Object, PysPlage as Object, PysRef
dim PysCellCursor as object, PysCellRangeAddress as object
Dim PysData(0) as new com.sun.star.table.CellRangeAddress
dim PysNomObjet as string
dim PysColFin as integer, PysLigFin as integer
PysClasseur = thisComponent
PysFeuille = PysClasseur.sheets.getByName(PysNomFeuille)
PysCellCursor = PysFeuille.createCursor()
PysCellCursor.gotoEndOfUsedArea(False)
'Ci-dessous mis en commentaire car non utilisé ici, juste pour l'exemple
'PysColFin=PysCellCursor.getRangeAddress().EndColumn
PysLigFin=PysCellCursor.getRangeAddress().EndRow
PysPlage=PysFeuille.getCellRangeByPosition(PysDebCol, PysDebLig, PysFinCol, PysLigFin)
PysRef=PysPlage.RangeAddress
PysGraph=PysFeuille.DrawPage(PysNomGraphe)
PysNomObjet = PysGraph.PersistName
PysGraph=PysFeuille.Charts.getByName(PysNomObjet)
PysGraph.embeddedObject.Title.String="Graphe du " & now
PysData(0)=PysRef
PysGraph.setranges(PysData())
end sub