Recherche sur le blog

mardi 10 novembre 2015

[WD20] Remplir plusieurs cellules Excel par OLE

Cette technique permet de gagner en performances lorsqu'on cherche à piloter Excel à l'aide d'OLE Automation. En effet, si par exemple on cherche à alimenter les cellules A1 à B5 (soit 10 cellules, sur deux colonnes distinctes), on va pouvoir utiliser un tableau de variants à 2 dimensions. La solution a été proposée sur les forums de PC SOFT par Jurassic Pork.

Si vous ne vous souvenez plus de la manière dont il faut déclarer les différentes variables afin de piloter Excel, vous pouvez consulter l'article "Pilotage Excel via OLE" sur le blog. Dans notre exemple nous allons déclarer des objets supplémentaires qui représenteront respectivement une feuille spécifique et une plage de cellules.
MaFeuille est un objet automation dynamique
MaPlage est un objet automation dynamique
MonTableauAutomation est un tableau de 5 par 2 Variant

MaFeuille = objXLApp>>Worksheets("Feuil1")
POUR i = 1 A 5
  MonTableauAutomation[i,1]="Donnée_A_" + i
  MonTableauAutomation[i,2]="Donnée_B_" + i
FIN

MaPlage = MaFeuille>>Range("A1:B5")
MaPlage>>Value = MonTableauAutomation
Dans le code ci-dessus on a volontairement supprimé l'ouverture du classeur et le test pour vérifier s'il a bien été chargé. La déclaration de l'objet "objXLApp" n'est d'ailleurs pas présente ici. Bon développement à tous.

Aucun commentaire: