Pour résoudre le problème de forte consommation de ressources, je suis donc revenu à LIRE.CELLULE
Mais ...
- c'est compliqué à mettre en oeuvre
- curieusement les valeurs ne se recalculent pas quand on change le format de la cellule !!
donc la seule solution est de faire soit-même une macro :
Function caracteristique(feuille As String, cellule As Range, code As Integer)
caracteristique = Application.ExecuteExcel4Macro("get.cell(" & code & "," & feuille & "!R" & cellule.Row & "C" & cellule.Column & ")")
End Function
Il reste pas moins vrai que cette façon de programmer est assez obsolète même si elle fonctionne encore, en tous cas ce n'est pas du tout de la POO.
Bref je vais cumuler les 2, c'est à dire utiliser ActiveCell.Characters([Start], [Length]).Font
mais uniquement sur le premier caractère de la cellule (ou premier caractère de la ligne après un retour à la ligne dans la cellule).