Macro de comptage de cellules pour une mise à jour des données source d'un graphique

Bonjour,

Je galère sur une macro qui compte le nombre de cellules rajoutées dans une sélection de données pour mettre à jour un graphique calc.

Merci de votre aide si possible (il s'agit de l'automatisation d'une application calc)

A+

Bonsoir Michel,

Bonjour,

Je galère sur une macro qui compte le nombre de cellules rajoutées dans une sélection de données pour mettre à jour un graphique calc.

Tu galères à quel niveau ? Pour découvrir les nouvelles cellules, pour les compter, pour mettre à jour le graphique... Éventuellement un bout de macro permettrait de savoir où tu bloques.

Hello Michel,

Binnnnnnnnnnnnn !! c'est dès le début que je bloque !
Récupération des données d'origine : plage = oChart.getRanges(), OK.
Trouver la dernière cellule non vide de la zone :  pas top (avec createSearchDescriptor et findAll ?...).
Ensuite je sèche lamentablement sur: reconstituer la nouvelle référence (plage) pour mettre à jour à l'aide de oChart.setRanges(plage).

En résumé ... Je rame !

A+

Bonjour,

si c'est le problème de selection, voici un bout de code pour récupérer ce
qu'il faut d'une selection en calc :
Dim doc As object, feuille As object, ctrl as object , cel As Object
dim formulaires as Object, monformulaire as object, mapage as object,
moncontrol as object, monimage as object
dim chemin as string
dim positionImage as New com.sun.star.awt.Point
Dim Taille As New com.sun.star.awt.Size
dim sel as object
'dim departcol, departlig, finlig, fincol as Object

' recuperation des infos de la feuille actuelle
doc=thisComponent
Ctrl=doc.CurrentController
feuille=Ctrl.ActiveSheet

'recuperation de la selection en cours...
sel=doc.currentselection
if sel.supportsService("com.sun.star.sheet.SheetCellsRanges") then
' differentes zones selectionnées (on traite pas ici)
' for x = 0 to sel.count - 1
' zonex = sel(x)
' msgbox("Zone n" & x & "=" & adrZoneString(doc,zonex.RangeAddress))
' next
exit sub
elseif sel.supportsService("com.sun.star.table.Cell") then
' une cellule selectionnee
DepartCol=sel.CellAddress.column
FinCol=sel.CellAddress.column
DepartLig= sel.CellAddress.row
FinLig= sel.CellAddress.row
elseif sel.supportsService("com.sun.star.table.CellRange") then
' une zone adjacente de cellule selectionnee
DepartCol=sel.rangeAddress.startcolumn
DepartLig=sel.rangeAddress.startrow
FinCol=sel.rangeAddress.endcolumn
FinLig=sel.rangeAddress.endrow
else
msgbox("erreur logicielle")
exit sub
end if

sinon, si tu as la possibilité dans ton graphe, c'est de toujours faire tes
ajouts de lignes AVANT la dernière ligne de ta sélection. Ainsi ton
graphique se mettre à jour SANS que tu aies à le modifier :wink:

Yves

Bonjour,

voici un exemple ci-joint qui peut peut-être t'aider, je modifie le range
du graphique.
https://cjoint.com/c/KHpjYiJvu7S

Yves