Macro : Récupérer le contenu d'une cellule

Bonjour

Voici une nouvelle question envoyée à l'aide du formulaire de demande d'aide (http://fr.libreoffice.org/get-help/poser-une-question/).
Si vous répondez, merci de penser à utiliser la fonction "répondre à tous" de votre logiciel de courrier électronique de façon que le demandeur reçoive une copie de votre réponse.

Email:: phillibreoffice@gmail.com
Sujet:: Macro : Récupérer le contenu d'une cellule
OS:: Windows 10
Version:: 5.4.x
Question:: Bonjour,
Dans Calc, j'aimerai récupérer le contenu d'une cellule dans une macro (C'est la fonction cells sur Excel).
Merci par avance de votre réponse.
Amicalement,
Philippe

Bonjour Philippe,

Dans Calc, j'aimerai récupérer le contenu d'une cellule dans une macro (C'est la fonction cells sur Excel).

Si vous répondez, merci de penser à utiliser la fonction "répondre à tous" de votre logiciel de courrier électronique de façon que la liste reçoive une copie de votre réponse.

Pour accéder à une cellule d'une feuille il faut connaître la feuille.

Dim oSheet As Object
Dim oCell As Object 'l'objet cellule recherché

Dim MaValeur As Double 'les différentes valeurs possibles
Dim MaChaine As String '(selon la situation)
Dim MaFormule As String

'on récupère l'objet feuille
oSheet = ThisComponent.Sheets.getByName("Feuille1")

'récupérer l'objet cellule
'1. à partir de son nom. ex : "A1"
oCell = oSheet.GetCellRangeByName("A1")

'2. à partir de ses coordonnées. ex : 0, 0 pour A1 (X = 0, Y = 0 ; valeurs indexées à partir de 0)
oCell = oSheet.GetCellRangeByPosition(0, 0)

'3. à partir d'une cellule nommée. ex : A1 est nommée "MaCellule"
oCell = oSheet.GetCellRangeByName("MaCellule")

'Une fois l'objet cellule récupéré, on accède au contenu de la cellule
' par :

MaValeur = oCell.Value 'si valeur numérique
MaChaine = oCell.String 'valeur texte (existe dans tous les cas)
Maformule = oCell.Formula 'si formule

En espérant avoir aidé.

Bien cordialement,

Bonjour,

Je voudrais ajouter quelques  précisions pour les personnes qui viennent du VBA Excel

  * L'équivalent strict de Cells (qui, au passage, n'est pas une
    fonction mais une collection d'objet) est oCell =
    oSheet.GetCellByPosition(0, 0) (oCell =
    oSheet.GetCellRangeByPosition(0, 0) fonctionne aussi mais,
    normalement, on obtient l'équivalent d'un objet Range VBA)
  * La numérotation des lignes et des colonnes commence à 0 et non à 1
  * Les coordonnées sont sous la forme Colonne,ligne et non ligne
    colonne  -> GetCellByPosition(2,1) représente C2 (et non A2)
  * Ne pas confondre la propriété Value de VBA (qui donne un contenu de
    type Variant) et Value du Basic LO (qui donne un contenu de type
    numérique strict)
  * Une dernière chose assez subjective : c'est vrai que c'est souvent
    moins long à écrire en VBA mais ça donne de très mauvaises
    habitudes.. en VBA aussi, on devrait définir le classeur, la
    feuille.. etc, ça donne un code plus solide.  :wink:

Christian F

Bonjour
Merci beaucoup pour cette réponse très complète. Je ne manquerai pas de
revenir vers vous si je m'en sors pas.
Bon après midi à tous