[Résolu][Calc] Renvoyer valeurs recherchées dans une cellule séparées par virgule

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Lamodeama
Fraîchement OOthentifié
Messages : 2
Inscription : 14 sept. 2022 10:02

[Résolu][Calc] Renvoyer valeurs recherchées dans une cellule séparées par virgule

Message par Lamodeama »

Bonjour,

Je cherche à renvoyer plusieurs valeurs de recherche dans une cellule avec LibreOffice Basic.

J'ai trouvé ce code VBA que je tente de traduire sur LibreOffice Basic :
https://fr.extendoffice.com/documents/excel/3120-excel-return-multiple-values-separated-by-comma.html

Après de nombreuses recherches (je suis complètement débutante dans Basic), je reste bloquée sur la définition d'un tableau comme variable.

J'ai tenté d'écrire un code un peu plus simple pour un exemple de tableau 2 colonnes et 6 lignes afin de comprendre d'où venait l'erreur :

Code : Tout sélectionner

Function SingleCellExtract(LookupValue As Double, LookupRange() As Object, ColumnNumber As Integer, Char As String)
'Updateby Extendoffice
    Dim I As Long
    Dim xRet As String
    Dim LookupRange(1,5) As String
    For I = 1 To 6
        If LookupRange(I, 1) = LookupValue Then
            If xRet = "" Then
                xRet = LookupRange(I, ColumnNumber) & Char
            Else
                xRet = xRet & "" & LookupRange(I, ColumnNumber) & Char
            End If
        End If
    Next
    SingleCellExtract = Left(xRet, Len(xRet) - 1)
End Function
Je vous joins le tableau exemple sur lequel j'essaie d'appliquer la fonction.

Merci d'avance pour votre aide.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 5.4 sous Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25977
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Renvoyer plusieurs valeurs de recherche dans une cellule séparée par des virgules

Message par Dude »

Salut,

Lire ceci : https://beaussier.com/sections/viewtopic.php?f=8&t=1563
Tu peux t'inspirer du regroupement
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 639
Inscription : 09 août 2017 22:15

Re: [Calc] Renvoyer plusieurs valeurs de recherche dans une cellule séparée par des virgules

Message par Jurassic Pork »

Hello,
Lamodeama a écrit : 14 sept. 2022 13:38 Je cherche à renvoyer plusieurs valeurs de recherche dans une cellule avec LibreOffice Basic.
voici une fonction personnalisée en oo Basic qui devrait te satisfaire :
RECHTOUS(v, plg,colval As integer,colres As integer,sep as String)
On recherche la valeur de la cellule v dans la colonne colval de la plage plg et on renvoie l'ensemble des valeurs correspondantes de la colonne colres de la plage plg, séparé par le séparateur sep.
exemples d'utilisation :

Code : Tout sélectionner

=RECHTOUS(D2;A2:B7;1;2;",")

Code : Tout sélectionner

=RECHTOUS(D2;maplage;1;2;",")
maplage étant une plage nommée.

Voici le code de la fonction personnalisée RECHTOUS :

Code : Tout sélectionner

Function RECHTOUS(v, plg, colval As integer, colres As integer, sep as String)
    'Fonction de recherche qui renvoie tous les résultats
    Dim temp as String, i as long
    temp = ""
    For i = LBound(plg,1) To UBound(plg,1)
        If  plg(i, colval) = v Then
            temp = temp & plg(i, colres) & sep
        End If
    Next i
    If temp <> "" then 
        RECHTOUS = Left(temp, Len(temp) - 1)
    Else
        RECHTOUS = "Valeur non trouvée"
    End If
End Function
Rechtous.PNG
Performance mesurée sur mon ordinateur sous Windows 10, LibreOffice 7.3.4 :
94 ms pour une plage de 50000 lignes (A2:B50001)

Ami calmant, J.P
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
Lamodeama
Fraîchement OOthentifié
Messages : 2
Inscription : 14 sept. 2022 10:02

Re: [Calc] Renvoyer plusieurs valeurs de recherche dans une cellule séparée par des virgules

Message par Lamodeama »

Merci beaucoup !
LibreOffice 5.4 sous Windows 10