Liste complexe sur 1 seule cellule avec séparateur

Bonjour à toutes et tous,

Notamment avec la contribution du forum j'ai adapté une fonction de rechercheV qui me permet dans une seule cellule de lister avec séparateur (dans mon cas un point virgule) certaines données via critères.

Mais mon adaptation reste partielle car le résultat renvoi quand même le séparateur si les cellules balayées sont vides.

Pourriez vous m'aider à résoudre ce problème avec le fichier exemple joint ?

Merci

Je profite de ce post pour souhaiter aux lecteurs une très bonne année 2022

Bien à vous

Très cordialement

Hugues

Bonjour,

Problème avec l'ouverture de votre fichier, probablement dû au fait qu'il a été créé sur Mac. Ce qui fait que je ne vois pas la formule que vous avez écrit, et le code VBA ne me renseigne pas suffisamment sur les plages que vous saisissez. Alors je vous ai fait une macro qui extrait les villes spéciales comme vous le souhaitez.

Cdlt

Bonjour Arturo83,

Votre macro fonctionne parfaitement et je vous en remercie.

Oui je vous confirme que je suis sous office 365 MAC.

La formule est (quand utilisée avec données sous forme de tableau) à partir d"une fonction VBA : =SI([@Qui]="";"";Agences(C2;[Email];2;";")); ce qui rend cela dynamique en cas de rajout de ligne

Ou si les données n'était pas sous tableau : =SI(A2="";"";Agences(C2;C2:C296;2;";"))

La fonction est. :

Function Agences(LookupValue As String, LookupRange As Range, ColumnNumber As Integer, Char As String)
'Updateby Extendoffice
    Dim i As Long
    Dim xRet As String
    For i = 1 To LookupRange.Columns(1).Cells.Count
        If LookupRange.Cells(i, 1) = LookupValue Then
            If xRet = "" Then
                xRet = LookupRange.Cells(i, ColumnNumber) & Char
            Else
                xRet = xRet & "" & LookupRange.Cells(i, ColumnNumber) & Char
            End If
        End If
    Next
    Agences = Left(xRet, Len(xRet) - 1)
End Function

Est il possible que votre macro puisse être adaptée en fonction pour ne pas la limiter à des places définies en dur dans le code mais définies par variable comme dans la fonction de rechercheV ci dessus ?

En tous cas de nouveaux merci, car même si je voudrais aller encore plus loin dans mon jeu de données réelles (fonction avec variable) votre proposition me permet déjà d'avancer.

Merci

Cordialement

Hugues

Bonjour,

Ok, je comprends mieux pour la formule, alors voici la modif

Function Agences(LookupValue As String, LookupRange As Range, ColumnNumber As Integer, Char As String)
'Updateby Extendoffice
    Dim i As Long
    Dim xRet As String
    For i = 1 To LookupRange.Columns(1).Cells.Count
        If LookupRange.Cells(i, 1) = LookupValue Then
            If xRet = "" Then
                xRet = LookupRange.Cells(i, ColumnNumber) & Char
            ElseIf LookupRange.Cells(i, ColumnNumber) & Char <> ";" Then: xRet = xRet & "" & LookupRange.Cells(i, ColumnNumber) & Char
            End If
        End If
    Next
    If Left(xRet, 1) = ";" Then
        Agences = Mid(xRet, 2, Len(xRet) - 1)
    Else
        Agences = Mid(xRet, 1, Len(xRet) - 1)
    End If
    If Right(Agences, 1) = ";" Then Agences = Left(Agences, Len(Agences) - 1)
End Function

La formule en E2:

=SIERREUR(SI($A2="";"";Agences($C2;$C$2:$C$296;2;";"));"")

Cdlt

Bonjour Arturo83,

Un grand merci, votre répond solutionne toute ma problématique.

Bravo et merci

Très cordialement

Hugues

Rechercher des sujets similaires à "liste complexe seule separateur"