Pb Macro

Bonjour à tous,
Voilà quelques semaines maintenant, je vous avez interrogé pour pouvoir
récupérer dans une macro, le contenu d'une cellule :
Voilà mon code :
Sub Main
Dim oSheet As Object
Dim oCell As Object
Dim MaChaine As String
oSheet = ThisComponent.Sheets.getByName("Feuille1")
oCell = oSheet.GetCellRangeByPosition(0, 0)
MaChaine = oCell.String
End Sub

Malheureusement, à l’exécution de la macro, j'ai le message suivant:
Erreur d’exécution BASIC
Une exception s'est produite
Type: com.sun.star.lang.IllegalArgumentException
Message: expected 4 arguments, got 2.

Qu'en dites vous ?
Comment faire pour renvoyer le résultat d'une macro vers une cellule ?

Merci par avance de votre aide

Philippe

Bonjour,

à tester :

Sub Main
Dim oSheet As Object
Dim oCell As Object
Dim MaChaine As String
oSheet = ThisComponent.Sheets.getByName("Feuille1")
MaChaine = oSheet.getCellByPosition(0,0).String
MsgBox(MaChaine)
End Sub

Bon surf,
Christian

Bonjour Philippe,

oCell = oSheet.GetCellRangeByPosition(0, 0)

oCell = oSheet.GetCellByPosition(0, 0)

GetCellRangeByPosition() s'utilise pour une plage (range) et attend bien 4 paramètres comme dit dans le message d'erreur : les X/Y de début et les X/Y de fin.

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.

Bien cordialement,

Bonjour,
Ca marche impeccable ! Merci beaucoup !
et comment fait on pour que la macro affecte une valeur dans une cellule ??
Merci par avance de votre réponse.
Amicalement,

Philippe

on fait dans l'autre sens :

une chaîne de caractères
oCell.String = "mon texte"

une valeur numérique (ou une date)
oCell.Value = 1,2345
ou
oCell.Value = Now()

Tu peux même écrire une formule :
oCell.FormulaLocal = "=SOMME(A1:B10)"

Bien cordialement,

Merci Jean-François pour ta réponse
mais comment fait on pour l'affecter à une cellule ?
Merci par avance pour la réponse.
Cordialement,
Philippe

Même si le site est ancien et plus à jour depuis longtemps (je me suis arrêté à la version 3.x, une éternité !)
je te conseille de jeter un œil sur http://christianwtd.free.fr/
et en particulier les pages de programmation basic. Je pense que ça pourra aider un peu.

Bon surf,
Christian

Merci beaucoup pour le lien !!
Très intéressant !

comme dans ton message d'origine :

Sub Main

Dim oSheet As Object
Dim oCell As Object
Dim MaChaine As String

oSheet = ThisComponent.Sheets.getByName("Feuille1")
oCell = oSheet.GetCellRangeByPosition(0, 0) 'A1

'au lieu de lire par : MaChaine = oCell.String

'on écrit par
oCell.String = MaChaine
End Sub

Bien cordialement,