IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenOffice & LibreOffice Discussion :

[Débutant] Macro : comment récupérer l'adresse de la cellule passée en paramètre au lieu de sa valeur


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut [Débutant] Macro : comment récupérer l'adresse de la cellule passée en paramètre au lieu de sa valeur
    Bonjour,

    J'ai créé une macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function macro_test(oCell as variant)  As String
    	Dim oDocument as Object 'ThisComponent
    	oDocument = ThisComponent
     
    	Dim oSheet as Object 'ScTableSheetObj
    	oSheet = oDocument.CurrentController.ActiveSheet
     
    end function
    Si dans une cellule, je mets la formule "=test(A1)", oCell est une variable qui contient la valeur de la cellule alors que je voudrais que oCell soit un objet de type ScCellObj qui correspond à la cellule

    Merci d'avance


    function macro_test(oCell as variant) As String
    Il ne faut pas mettre autre chose que variant comme type ? ... j'ai essayé de mettre ScTableSheetObj met ça me génère une erreur

    Aussi, ou trouve t-on la doc des objets gérés par libreoffice (méthodes, propriétés, ...) ?

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 612
    Points
    58 612
    Billets dans le blog
    11
    Par défaut
    Salut,

    Avez-vous regarder ceci : http://vviale.developpez.com/tutorie...r-calc/#LV-C-3 ?
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    bonjour,

    Oui j'avais lu ce document : il n'y a pas d'exemple de fonction dans laquelle on passe en argument la référence d'une cellule.
    => Il n'y a pas beaucoup de documentation sur oBasic sur le net

  4. #4
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 612
    Points
    58 612
    Billets dans le blog
    11
    Par défaut
    Si tu utilises maCellule.Formula, tu obtiendras test(A1), il te suffira ensuite d'enlever la fonction test( et ) pour n'obtenir que A1.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    ça ne fonctionne pas car la variable oCell ne contient pas un objet qui correspond à la cellule : elle contient la valeur de la cellule.
    => Si la valeur de ma cellule est 4, mettre dans mon code "oCell.Formula", ça correspond à écrire "4.Formula" : donc ça buguera

  6. #6
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 612
    Points
    58 612
    Billets dans le blog
    11
    Par défaut
    Citation Envoyé par boboss123 Voir le message
    ça ne fonctionne pas car la variable oCell ne contient pas un objet qui correspond à la cellule : elle contient la valeur de la cellule.
    => Si la valeur de ma cellule est 4, mettre dans mon code "oCell.Formula", ça correspond à écrire "4.Formula" : donc ça buguera
    Si tu as une formule dans ta cellule, cela va récupérer la formule et pas la valeur du résultat.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    Pour avoir la référence de la cellule, tu me dis d'utiliser oCell.Formula, or pour pouvoir définir oCell, il faut la référence de la cellule : c'est le serpent qui se mort la queue...
    => fais un test, tu verras le problème

  8. #8
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 612
    Points
    58 612
    Billets dans le blog
    11
    Par défaut
    Citation Envoyé par boboss123 Voir le message
    Pour avoir la référence de la cellule, tu me dis d'utiliser oCell.Formula, or pour pouvoir définir oCell, il faut la référence de la cellule : c'est le serpent qui se mort la queue...
    => fais un test, tu verras le problème
    Dans ta demande tu as mis :
    Citation Envoyé par boboss123 Voir le message
    ...
    Si dans une cellule, je mets la formule "=test(A1)", oCell est une variable qui contient la valeur de la cellule alors que je voudrais que oCell soit un objet de type ScCellObj qui correspond à la cellule
    ...
    Ce qui veut dire que tu as une formule dans une cellule !!! Où je n'ai rien compris à ta demande.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  9. #9
    Membre habitué
    Homme Profil pro
    Maitre d'Oeuvre, topographe en pré-retraite
    Inscrit en
    Juin 2016
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Maitre d'Oeuvre, topographe en pré-retraite
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2016
    Messages : 86
    Points : 138
    Points
    138
    Par défaut
    Bjour,

    Pour récupérer une adresse, je prends le risque de passer pour le béotien de service mais il me semble qu'il faut envoyer une adresse.

    Je tenterai la formule "=test("A1")"
    ou encore la formule "=test(colonne(A1);ligne(A1))"

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    Citation Envoyé par TpF45 Voir le message
    Bjour,

    Pour récupérer une adresse, je prends le risque de passer pour le béotien de service mais il me semble qu'il faut envoyer une adresse.

    Je tenterai la formule "=test("A1")"
    ou encore la formule "=test(colonne(A1);ligne(A1))"
    Ces formules fonctionnent mais c'est peu pratique, on ne peut plus entrer le début de la formule puis sélectionner la case pour que la référence de la cellule soit remplie automatiquement : c'est quand même bizarre que les macros livrées avec le logiciel puissent le faire et que l'on ne puisse pas le faire...

  11. #11
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 612
    Points
    58 612
    Billets dans le blog
    11
    Par défaut
    Citation Envoyé par boboss123 Voir le message
    c'est quand même bizarre que les macros livrées avec le logiciel puissent le faire et que l'on ne puisse pas le faire...
    Dans ce cas là, il suffit d'analyser le code de LibreOffice est de le récupérer pour l'utiliser, mais le code qui te paraît simple ne l'est peut-être pas
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 821
    Points : 979
    Points
    979
    Par défaut
    Citation Envoyé par zoom61 Voir le message
    Dans ce cas là, il suffit d'analyser le code de LibreOffice est de le récupérer pour l'utiliser, mais le code qui te paraît simple ne l'est peut-être pas
    C'est pas bête, reste plus qu'a espéré que les macro sont faites en oBasic

Discussions similaires

  1. [XL-2007] Récupérer l'adresse d'une cellule sans passer par une macro
    Par Runsh63 dans le forum Excel
    Réponses: 4
    Dernier message: 28/04/2014, 15h09
  2. Réponses: 3
    Dernier message: 22/07/2008, 10h46
  3. [HTTP] Comment récupérer l'adresse de base d'une URL ?
    Par eric30eric dans le forum Web & réseau
    Réponses: 2
    Dernier message: 02/10/2005, 17h28
  4. Comment récupérer les adresses WWW dans Internet Explorer ?
    Par chaours dans le forum Web & réseau
    Réponses: 7
    Dernier message: 03/09/2003, 14h27
  5. Comment récupérer une adresse MAC ?
    Par psau dans le forum Développement
    Réponses: 7
    Dernier message: 19/07/2002, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo