| auteurs : Ricky81, blondelle | Nous allons exécuter la fonction Add sur le Variant correspondant à l'ensemble des feuilles.
Variant vWorksheet;
vWorksheet = vWorksheets.OleProdedure (" Add " );
|
Excel donnera pour nom FeuilI (cas de la version française) où I est le plus petit nombre tel que FeuilI n'existe pas encore. La feuille sera placée en première position.
|
lien : Comment récupérer l'ensemble des feuilles d'un classeur ?
|
| auteur : Ricky81 | Travaillons sur le Variant correspondant à la feuille.
vWorksheet.OleProcedure (" Move " , vSheet);
|
Exemple :
Variant vWorksheet1, vWorksheet3;
vWorksheet3 = vXLWorkbook.OlePropertyGet (" Worksheets " , 3 );
vWorksheet1 = vXLWorkbook.OlePropertyGet (" Worksheets " , 1 );
vWorksheet3.OleProcedure (" Move " , vWorksheet1);
|
Nous déplaçons la 3ème feuille en la mettant en première position.
|
lien : Comment récupérer une feuille à partir de sa position dans le classeur ?
|
| auteur : Ricky81 | Il nous faut travailler au niveau d'une feuille, par exemple définie par le Variant
vWorksheet.
vWorksheet.OleFunction (" Copy " );
|
Cette fonction renvoie un booléen.
|
| auteur : Ricky81 | Il nous faut travailler au niveau d'une feuille, par exemple celle définie par le Variant
vWorksheet.
vWorksheet.OleFunction (" Copy " , vSheetBefore);
|
Cette fonction renvoie un booléen.
|
| auteur : Ricky81 | Plaçons-nous au niveau d'une feuille qui serait définie par le Variant
vWorksheet. Le code suivant permet de récupérer un Variant correspondant à la plage de cellules utile.
vUsedRange = vWorksheet.OlePropertyGet (" UsedRange " );
|
Il est après par exemple possible de compter le nombre de lignes :
Variant vLines;
vLines = vUsedRange.OlePropertyGet (" Rows " );
int i = vLines.OlePropertyGet (" Count " );
|
ou le nombre de colonnes :
Variant vCols;
vCols = vUsedRange.OlePropertyGet (" Columns " );
int i = vCols.OlePropertyGet (" Count " );
|
|
lien : Comment accéder à une cellule définie au format Excel (ex. A1 ou L1C1) ?
lien : Comment récupérer toutes les cellules d'une feuille ?
|
| auteur : Superstivix | Nous allons travailler sur une feuillle, représentée par le Variant
vWorksheet. Pour accéder à cette information, il faut interroger l'objet Protection de cette feuille :
bool supprLignePermis, supprColonnePermis;
supprLignePermis = vWorksheet.OlePropertyGet (" Protection " ).OlePropertyGet (" AllowDeletingRows " );
supprColonnePermis = vWorksheet.OlePropertyGet (" Protection " ).OlePropertyGet (" AllowDeletingColumns " );
|
|
lien : Comment insérer ou supprimer une cellule ?
|
| auteur : Superstivix | Nous allons travailler sur une feuillle, représentée par le Variant
vWorksheet. Pour accéder à cette information, il faut interroger l'objet Protection de cette feuille :
bool insertLignePermis, insertColonnePermis;
insertLignePermis = vWorksheet.OlePropertyGet (" Protection " ).OlePropertyGet (" AllowInsertingRows " );
insertColonnePermis = vWorksheet.OlePropertyGet (" Protection " ).OlePropertyGet (" AllowInsertingColumns " );
|
|
lien : Comment insérer ou supprimer une cellule ?
|
| auteur : Superstivix | Nous allons travailler sur une feuillle, représentée par le Variant
vWorksheet. Pour accéder à cette information, il faut interroger l'objet Protection de cette feuille :
bool insertPermis;
insertPermis = vWorksheet.OlePropertyGet (" Protection " ).OlePropertyGet (" AllowInsertingHyperlinks " );
|
|
| auteur : blondelle | Il est possible d'effacer la grille de fond d'une feuille Excel.
vMSExcel.OlePropertyGet (" ActiveWindow " ).OlePropertySet (" DisplayGridlines " ,false );
vMSExcel.OlePropertyGet (" ActiveWindow " ).OlePropertySet (" DisplayGridlines " ,true );
|
|
| auteur : blondelle | Exemple de 2 carrés l'un dans l'autre :
Variant vLigne1;
vWorksheet = vXLWorkbook.OlePropertyGet (" Worksheets " , 1 );
vLigne1 = vWorksheet.OlePropertyGet (" Shapes " );
vLigne1.OleProcedure (" AddShape " , 15 , 201 .6 , 269 .4 , 18 .6 , 18 .6 );
|
Le code complet qui dessine un trait.
On peut changer l'épaisseur, la couleur du trait, et rendre le trait visible ou invisible.
Variant vLine;
vWorksheet = vXLWorkbook.OlePropertyGet (" Worksheets " , 1 );
vLine = vWorksheet.OlePropertyGet (" Shapes " ).OleFunction (" AddLine " , 1 , 1 , 200 ,100 );
vLine.OlePropertyGet (" Line " ).OlePropertySet (" Weight " , 8 );
vLine.OlePropertyGet (" Line " ).OlePropertyGet (" ForeColor " ).OlePropertySet (" SchemeColor " , 22 );
vLine.OlePropertyGet (" Line " ).OlePropertySet (" Visible " , false );
vLine.OlePropertyGet (" Line " ).OlePropertySet (" Visible " , true );
|
|
| auteur : blondelle | Pour figer/libérer les volets, il faut au préalable sélectionner la/les cellule(s), puis définir la propriété FreezePanes.
Variant vWorksheet, vRange;
vWorksheet = vXLWorkbook.OlePropertyGet (" Worksheets " , 1 );
vRange = vWorksheet.OlePropertyGet (" Range " , " B4 " );
vRange.OleProcedure (" Select " );
vMSExcel.OlePropertyGet (" ActiveWindow " ).OlePropertySet (" FreezePanes " , true );
|
|
| auteur : blondelle | Il suffit simplement d'interroger la propriété Count sur l'objet correspondant à l'ensemble des feuilles.
Variant vWorksheets;
vWorksheets = vXLWorkbook.OlePropertyGet (" Worksheets " );
int nb_de_feuilles = vWorksheets.OlePropertyGet (" Count " );
|
|
| auteur : blondelle | Ce code copie une feuille, ouvre un nouveau classeur renomme la feuille du nouveau classeur, colle la copie et désélectionne les feuilles de chaque classeur. Par défaut Excel crée les feuilles avec le nom Feuil1, Feuil2, ... que l'on peut renommer, mais qui conserve toujours son rang dans la classification. Nous l'écrirons donc en OLE ("Worksheets", 1) ou ("Worksheets", "toto"). Il en est de même pour les classeurs.
Le Variant vMSExcel représente l'application Excel.
Variant vXLWorkbooks, vXLWorkbook, vWorksheet;
vXLWorkbooks = vMSExcel.OlePropertyGet (" Workbooks " );
vXLWorkbook = vMSExcel.OlePropertyGet (" Workbooks " , 1 );
vWorksheet = vXLWorkbook.OlePropertyGet (" Worksheets " , 1 );
vWorksheet.OleProcedure (" Select " );
vWorksheet.OlePropertyGet (" Cells " ).OleProcedure (" Select " );
vMSExcel.OlePropertyGet (" Selection " ).OlePropertyGet (" Copy " );
vXLWorkbooks.OleProcedure (" Add " );
vWorksheet = vMSExcel.OlePropertyGet (" ActiveSheet " );
vWorksheet.OlePropertySet (" Name " , " SAUVEGARDE_2 " );
vWorksheet.OleProcedure (" Select " );
vWorksheet.OlePropertyGet (" Cells " ).OleProcedure (" Select " );
vMSExcel.OlePropertyGet (" ActiveSheet " ).OleProcedure (" Paste " );
vMSExcel.OlePropertySet (" CutCopyMode " , false );
vWorksheet.OlePropertyGet (" Range " , " A1 " ).OleProcedure (" Select " );
vXLWorkbook = vMSExcel.OlePropertyGet (" Workbooks " , 1 );
vXLWorkbook.OleProcedure (" Activate " );
vWorksheet = vXLWorkbook.OlePropertyGet (" Worksheets " , 1 );
vWorksheet = vMSExcel.OlePropertyGet (" ActiveSheet " );
vWorksheet.OleProcedure (" Select " );
vWorksheet.OlePropertyGet (" Range " , " A1 " ).OleProcedure (" Select " );
|
|
| auteurs : blondelle, pottiez |
Cette procédure permet de connaitre le nombre de feuilles du classeur actif.
int Nb_feuilles = vXLWorkbook.OlePropertyGet (" Sheets " ).OlePropertyGet (" Count " );
|
|
Consultez les autres F.A.Q.
|
|