PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → récuperer les adresses de cellules nommées, via OLE
récuperer les adresses de cellules nommées, via OLE
Débuté par d.cakmur, 13 juin 2005 17:36 - Aucune réponse
Posté le 13 juin 2005 - 17:36
rappel : l'interet de nommer une cellule est de l'utiliser dans les calculs par son nom, plutôt que par ces coordonnées.

// au lieu de
B4³+B2
// on peut faire
Total=prix*QTE

en nommant les cellules B4, B3 et B2.


Il n'existe pas de propriété au niveau d'une cellule renvoyant le nom de la cellule.

la méthode est de

1/ récuperer la liste des noms des cellules qui sont nommées
2/ récuperer pour chacune de ces entrées dans la liste, les coordonnées de la cellule nommée

3/ non documenté içi pour l'instant, lier par une table mémoire les coordonnées de la cellule et son nom.



//
XL est un objet OLE "excel.Application"

// ouverture d'une feuille Excel, dans laquelle certaines cellules ont été nommées
XL>>Workbooks>>Open("c:\test.xls")
XL>>visible = OLEVrai
XL>>worksheets(1)>>Activate()


// récupération de noms de cellules et objets
// on ne connait pas le nombre de cellules nommées, on y va jusqu'à erreur

NbCellulesNommées est un entier=0
QUAND EXCEPTION DANS
BOUCLE
NbCellulesNommées++

Trace(XL>>Names(NbCellulesNommées)>>Name)
// Names est un tableau contenant le nom des cellules
// renvoie le nième nom, pointé par NbCellulesNommées

Trace(XL>>Names(NbCellulesNommées)>>RefersTo)
// renvoit les coordonnées de la cellule nommée pointée
// dans le format feuil1!$A$1
FIN
FAIRE
NbCellulesNommées--
FIN

trace("il y a ",NbCellulesNommées," cellules ou objets nommées dans cette feuille")