Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Création de segments se basant sur plusieurs colonnes

  • Initiateur de la discussion Initiateur de la discussion ralph45
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ralph45

XLDnaute Impliqué
Bonjour ami.e.s excelien.ne.s,

Dans le tableau fictif joint, je désirerai créer 2 segments se basant sur plusieurs colonnes :

- 1 segment "Représentants légaux" qui serait la fusion des 2 colonnes "Représentant légal 1" et "Représentant légal 2" au niveau des patronymes.
- 1 segment "Élèves" qui serait la fusion des 3 colonnes "Élève 1", "Élève 2" et Élève 3" au niveau des patronymes.

Merci de votre aide et bonne soirée !

R@lph45
 

Pièces jointes

Bonjour Bernard_XLD,

Je n'ai peut être pas compris la demande de ralph45 ou ta proposition mais je ne vois pas comment un segment pourrait filtrer, de manière utilisable, ce tableau même avec une colonne en plus.

Par exemple : si je veux sélectionner le représentant légal "Garcia", je vais devoir sélectionner dans le segment toutes les entrées correspondantes comme "Garcia", "GarciaRobert", "RobertGarcia", "BernardGarcia"... (les entrées ici représentent les noms de 2 représentants fusionnés) !

Les inversions du type "GarciaRobert" et "RobertGarcia" pourraient être résolues avec un tri avant fusion mais que faire avec les autres entrées comme "BernardGarcia" ?
 
Bonjour à tous,

Cela ne correspond pas à la demande mais tu peux fusionner les listes avec Power Query mais elles ne seront pas utilisables pour le tableau.
Il te faudra passer par des formules ou par VBA pour intervenir sur le tableau.

JHA
 

Pièces jointes

Bonjour le forum,

Voyez le fichier joint et le code de la feuille :
VB:
Option Explicit
Option Compare Text 'la casse est ignorée
Dim T, ncol%, a(), n& 'mémorise les variables

Private Sub OptionButton1_Change()
ComboBox1_GotFocus
ComboBox1_Change
End Sub

Private Sub ComboBox1_GotFocus()
Dim tablo, i&, j%, k%
With [Tableau1]
    T = .Value 'matrice, plus rapide
    ncol = .Columns.Count
    tablo = IIf(OptionButton1, .Resize(, 2), .Columns(3).Resize(, 3))
End With
Erase a: n = 0
For i = 1 To UBound(tablo)
    For j = 1 To UBound(tablo, 2)
        If tablo(i, j) <> "" Then
            n = n + 1
            ReDim Preserve a(1 To 2, 1 To n)
            a(1, n) = tablo(i, j)
            a(2, n) = i 'mémorise la ligne
        End If
Next j, i
If n Then ComboBox1.List = Application.Index(a, 1, 0) Else ComboBox1.Clear
End Sub

Private Sub ComboBox1_Change()
Dim crit$, d As Object, resu(), i&, j%, lig&, col%
crit = "*" & ComboBox1 & "*"
If n Then
    Set d = CreateObject("Scripting.Dictionary")
    ReDim resu(1 To UBound(T), 1 To ncol)
    For i = 1 To UBound(a, 2)
        If a(1, i) Like crit Then
            If Not d.exists(a(2, i)) Then
                d(a(2, i)) = 0
                lig = lig + 1
                For col = 1 To ncol
                    resu(lig, col) = T(a(2, i), col)
                Next col
            End If
        End If
    Next i
End If
'---restitution---
With [Tableau2] 'tableau structuré
    If lig Then .Resize(lig, ncol) = resu
    If .ListObject.DataBodyRange Is Nothing Then Exit Sub
    If lig < .Rows.Count Then .Rows(lig + 1).Resize(.Rows.Count - lig).Delete xlUp
End With
End Sub
La ComboBox permet de faire une recherche intuitive dans les colonnes choisies.

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…