[WD20] Remplir plusieurs cellules Excel par OLE

Vincent Lecomte

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.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Copy link