|
| 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") |
| |
| |
| | | |
|
| | | | |
| | |
|