Bonsoir

Ou passée tout court...

Dans Main, on récupère l'objet cellule qui correspond à A1 (.getCellByPosition 
ou .getCellRangeByName) et on passe l'objet en paramètre :

Sub Main
Dim oCell As Object
    oCell = thisComponent.Sheets(0).getCellByPosition(0,0)
    LaMacro(oCell)
End Sub

Le sub (ou la fonction) appelé récupère l'objet cellule et on a accès aux 
propriétés/métodes/etc... classiques, entre autres .String ou .Value :

Sub LaMacro(oCellParam)
    oCellParam.String = "Voili, voilou"
' ou oCellParam.Value = 10
End Sub

Cordialement

> From: [email protected]
> To: [email protected]
> Subject: RE: [fr-users] Obtenir l'adresse d'une cellule passée en paramètre à 
> une macro
> Date: Mon, 11 Nov 2013 11:11:10 +0100
> 
> Bonjour,
> 
> 
> > -----Message d'origine-----
> > De : PierreM [mailto:[email protected]]
> > Envoyé : dimanche 10 novembre 2013 21:29
> > À : [email protected]
> > Objet : [fr-users] Obtenir l'adresse d'une cellule passée en paramètre à
> > une macro
> > 
> > Bonjour,
> > 
> > Je cherche à développer une macro qui a besoin de modifier des cellules
> > passées en paramètre à l'appel de la macro comme une fonction dans une
> > cellule : =mafonction(A1)
> > 
> > A chaque fois, j'obtiens la valeur de la cellule A1, pas moyen d'obtenir
> > A1.
> > 
> > J'ai lu que c'était impossible :
> > 
> > https://wiki.openoffice.org/wiki/Documentation/OOo3_User_Guides/Calc_Guide
> > /Passing_arguments_to_a_macro
> > 
> > Ce document date un peu, cela a peut être changé depuis, mais je n'arrive
> > pas à trouver.
> > 
> > Merci pour vos suggestions
> 
> C'est tout à fait possible, l'argument doit être passé comme String qui sera
> ensuite utilisé dans la fonction pour définir l'objet Cellule qui a pour
> adresse cette chaîne:
> 
> Par exemple:
> Si l'argument est adCellule, la cellule visée est trouvée par:
> 
> Cellule=ThisComponent.Sheets.GetByName("Feuille1").GetCellRangeByName(adCell
> ule)
> 
> C'est-à-dire si adCellule = "a1", Cellule sera bien la cellule
> $Feuille1.$A$1
> 
> Bonne journée,
> Michel
> 
> 
> -- 
> Envoyez un mail à [email protected] pour savoir comment 
> vous désinscrire
> Les archives de la liste sont disponibles à 
> http://listarchives.libreoffice.org/fr/users/
> Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
> pourront pas être supprimés
> 
                                          
-- 
Envoyez un mail à [email protected] pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés

Répondre à