FAQ C++ BuilderConsultez toutes les FAQ

Nombre d'auteurs : 60, nombre de questions : 670, dernière mise à jour : 21 novembre 2010  Ajouter une question

 

Cette F.A.Q. a été réalisée à partir des questions fréquemment posées sur le forum C++ Builder de developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette F.A.Q. ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette F.A.Q. ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez devenir rédacteur, contactez pottiez

Nous espérons que cette F.A.Q. saura répondre à un maximum de vos questions. Nous vous souhaitons une bonne lecture.

L'équipe C++ Builder de Developpez.

Commentez cette FAQ : Commentez


SommaireMS OfficeExcelGestion des cellules (54)
précédent sommaire suivant
 

Travaillons avec un Variant correspondant à la feuille.

Code c++ : Sélectionner tout
1
2
Variant vCells; 
vCells = vWorksheet.OlePropertyGet("Cells");

Mis à jour le 8 décembre 2004 Ricky81

Les cellules sont référencées par leur nom (par exemple "A1") et il est donc possible de récupérer une instance de cellule à partir de ce nom avec l'aide de la fonction Evaluate. Nous allons travailler directement sur l'instance d'Excel, ce qui signifie que la cellule renvoyée est celle du classeur en cours et de la feuille en cours.

Code c++ : Sélectionner tout
1
2
Variant vCell; 
vCell = vMSExcel.OleFunction("Evaluate", "A1");
Remarque : c'est un raccourci intéressant vous évitant d'avoir à passer par les éléments intermédiaires que sont le classeur et la feuille.

N'oubliez pas de tenir compte du format actuel de définition des cellules (A1 ou L1C1).

Mis à jour le 8 décembre 2004 Ricky81

Les méthodes Find et FindNext permettent d'effectuer une recherche sur une plage de cellules.
Considérons donc le Variant vRange.

Code c++ : Sélectionner tout
1
2
Variant vCell; 
vCell = vRange.OleFunction("Find", "ricky81"); // recherche de la valeur "ricky81"
La fonction renvoie donc la première cellule rencontrée contenant la valeur recherchée. Pour poursuivre la recherche, il est nécessaire de faire appel à la fonction FindNext à laquelle on passe en paramètre la cellule à partir de laquelle la recherche doit se faire.

Code c++ : Sélectionner tout
vCell = vRange.OleFunction("FindNext", vCell);
Etant donné que la cellule passée en paramètre contient la valeur recherchée, il n'est pas nécessaire de la déclarer.

Lorsque FindNext a fini de parcourir la plage, il reprend au départ. Il est donc nécessaire de mémoriser la cellule renvoyée par Find pour ne pas avoir une boucle infinie.

Mis à jour le 8 décembre 2004 bidou Ricky81

Agissons au niveau du Variant correspondant à un cellule.

Pour insérer :

Code c++ : Sélectionner tout
vCell.OleProcedure("Insert", shift);
shift correspond au décalage à effectuer. Il peut prendre les valeurs de la classe XlInsertShiftDirection :

Code c++ : Sélectionner tout
1
2
xlShiftDown = -4121 
xlShiftToRight = -4161
Pour supprimer :

Code c++ : Sélectionner tout
vCell.OleProcedure("Delete", shift);
shift correspond au décalage à effectuer. Il peut prendre les valeurs de la classe XlDeleteShiftDirection :

Code c++ : Sélectionner tout
1
2
xlShiftUp = -4162 
xlShiftToLeft = -4159
Remarque : ces opérations peuvent bien entendu également être réalisées sur un plage de cellules, et plus particulièrement une colonne ou une ligne.

Mis à jour le 8 décembre 2004 Ricky81

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2020 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.