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 :

Obasic Appel Fonction CALC avec argument de plage


Sujet :

OpenOffice & LibreOffice

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Autres
    Inscrit en
    Novembre 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Autres
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2020
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Obasic Appel Fonction CALC avec argument de plage
    Bonjour, C'est ma première question, donc ...

    Voilà, j'utilise la fonction VLOOKUP ou RECHERCHEV dans mon code obasic.
    Je recherche dans la plage A1:K100 de la feuille "Table"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'REM Déclaration de la plage **********************
    Doc = ThisComponent
    oSheet = Doc.Sheets.GetByName ("Table")     
    LaPlage = oSheet.getCellRangeByName("A1:K100")
    svc = createUnoService( "com.sun.star.sheet.FunctionAccess" )
    SearchValue = 1 : Column = 2 :  Mode = 0
    arg = Array(SearchValue, LaPlage, Column, Mode)
    MonResultat = svc.callFunction("VLOOKUP",arg)
    CELA FONCTIONNE

    Cependant, pour certaines raisons, cette plage A1:K100 de la feuille "Table" variera dans le temps.

    Donc dans ce but, j'ai défini la plage sous le nom TableDonnees avec Calc et je souhaite déclarer dans Basic
    que la matrice de la fonction est cette plage définit avec Calc.
    Avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LaPlage = Doc.NamedRanges.getByName("TableDonnees")
    Pour le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arg = Array(SearchValue, LaPlage, Column, Mode)
    CELA NE FONCTIONNE PAS

    Si quelqu'un à une réponse?
    Merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    utilisateur
    Inscrit en
    Janvier 2017
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : utilisateur
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2017
    Messages : 666
    Points : 1 105
    Points
    1 105
    Par défaut
    Bonjour JPGO20,

    Si vous ne l'avez pas déjà fait, essayez avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LaPlage = oSheet.getCellRangeByName("TableDonnees")
    ou essayez avec "LaPlage2" pour déclarer la table de données

    comme à mon avis, vous ne pouvez avoir deux instances de "LaPlage"

    LibreOffice 7.5.9.2.M1 (x64) FR-YT 05/12/23
    OS : Windows 11.0

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Autres
    Inscrit en
    Novembre 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Autres
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2020
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Déclaration service Libre Office
    Merci du retour.
    En fait, dans le but de simplifier, le code que j'ai montré est différent de l'original.
    J'ai différencié le nom des instances comme proposé mais cela ne change rien.
    J'ai mis un fichier .calc en PJ plus explicit sur la manip que j'aimerais faire.

    Je voudrais réussir 3 manips :
    1 - faire une déclaration public du nom de la plage utilisé Sous Calc "TableObjet"
    2 - utiliser le nom de la plage déclaré public avec la fonction Vlookup
    3 - Faire une déclaration public du service oFuncAcces = CreateUnoService("com.sun.star.sheet.FunctionAccess") et pouvoir l'utiliser avec
    différentes fonctions calc dans le code.

    Bonne journée
    Fichiers attachés Fichiers attachés

  4. #4
    Membre éprouvé
    Homme Profil pro
    utilisateur
    Inscrit en
    Janvier 2017
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : utilisateur
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2017
    Messages : 666
    Points : 1 105
    Points
    1 105
    Par défaut
    Bonjour JPGO20,

    Si vous ne l'avez pas déjà fait, je vous invite à télécharger les fichiers disponibles en suivant ce lien :
    LibOBasic_8_Params_Flat_A4_FR_v102a.odt
    LibOBasic_7_Files_Flat_A4_FR_v113.odt
    LibOBasic_6_Dialogs_Flat_A4_FR_v104.odt
    LibOBasic_5_ExecLib_Flat_A4_FR_v111.odt
    LibOBasic_4_Events_Flat_A4_FR_v101.odt
    LibOBasic_3_Calc_Flat_A4_FR_v113.odt
    LibOBasic_2_Overview_Flat_A4_FR_v111.odt
    LibOBasic_1_IDE_Flat_A4_FR_v104.odt
    LibO_primitives_v0ae.odt

    LibO-Primitives

    Peut-être que la fonction ci-dessous pourrait convenir

    GetNamedRange()
    Function GetNamedRange(ByRef pSheetName As String, pRangeName As String, Optional ByRef pDoc As Object) As Object
    Returns a range object from a sheet name and the range name.
    Input
    • pSheetName: the sheet name
    • pRangeName: the searched range name.
    The range name is a user-defined name (ex. MyRange).
    The range name may apply to any range type: single cell, single range, multiple range or named range.
    • pDoc: (optional) the document object.
    Defaults to the current spreadsheet.
    Output
    The range object or Null if not found.


    LibreOffice 7.5.9.2.M1 (x64) FR-YT 05/12/23
    OS : Windows 11.0

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Autres
    Inscrit en
    Novembre 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Autres
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2020
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Remerciement
    Bonjour et merci de la collaboration.
    Les fichiers LibObasic du téléchargement me seront très utiles.

    Mon sujet était ouvert pour que je puisse simplifier un programme plus ambitieux sur le quel je suis en ce moment .
    Cependant je n'y arrive pas et j'avoue que je n'ai pas beaucoup de temps à y consacrer.
    Donc je fais le choix de continuer sur le programme en question et je verrais plus tard pour la simplification.
    Bravo à ce site et aux collaborateurs.

Discussions similaires

  1. Réponses: 11
    Dernier message: 17/02/2018, 18h47
  2. fonction callback avec arguments
    Par YuGiOhJCJ dans le forum GTK+ avec C & C++
    Réponses: 12
    Dernier message: 12/04/2013, 09h42
  3. appel fonction javascript avec argument null
    Par cecile38 dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 12/01/2011, 11h54
  4. [Dates] fonction date avec argument timestamp
    Par nicoda dans le forum Langage
    Réponses: 3
    Dernier message: 31/01/2008, 17h55
  5. Fonction callback avec arguments ?
    Par sorry60 dans le forum GTK+ avec C & C++
    Réponses: 39
    Dernier message: 07/11/2005, 11h41

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