Recherche v / filtre / concatenation probleme insoluble
Bonjour
Dans un onglet Excel RECAP j'ai deux colonnes la colonne BC et la colonne référence de contrôle (voir ci-dessous)
Dans l'autre onglet Excel BASE j'ai des centaines de contrôle mais aussi à nouveau la colonne BC
Je cherche à remplir automatiquement l'onglet récap des contrôles comme dans l'exemple ci-dessous le problème c'est que la fonction Recherche V remonte toujours le même contrôle, la fonction filtre ne fonctionne pas et je cherche a concaténer les contrôles dans la même cellule.
J'ai l'impression que c'est impossible.
Vous avez une idée ???
Onglet RECAP
BC | Référence Control |
361500 | CSF00201 221; CSF00201244; CSF00201500) |
334088 | CSF00201102; CSF00201109; CSF00201241 |
361508 | CSF00201109; CSF00201248; CSF00201515 |
ONGLET BASE
BC | Control |
361500 | CSF00201221 |
334088 | CSF00201102 |
361508 | CSF00201109 |
361500 | CSF00201244 |
334088 | CSF00201109 |
361508 | CSF00201248 |
361500 | CSF00201500 |
334088 | CSF00201241 |
361508 | CSF00201515 |
Bonjour,
C'est possible avec une formule matricielle, voici le résultat:
Ps: ça ne fonctionne pas avec la fonction de compatibilité CONCATENER, il faut bien utiliser CONCAT.
Pour ceux qui n'ont pas cette fonction, on peut en bricoler une, avec une fonction perso codée en VBA on peut faire:
Function concatenation(separateur As String, ParamArray valeurs() As Variant)
Dim texte As String
Dim testDimension
For Each tableau In valeurs()
testDimension = 0
On Error Resume Next
testDimension = UBound(tableau, 2)
On Error GoTo 0
If testDimension = 0 Then
concatTableau texte, separateur, tableau, 1
Else
concatTableau texte, separateur, tableau, 2
End If
Next tableau
concatenation = texte
End Function
Private Function concatTableau(ByRef texte As String, separateur As String, tableau, dimension) As Variant
If dimension = 1 Then
For i = LBound(tableau, 1) To UBound(tableau, 1)
If Not tableau(i) = "" Then
texte = texte & IIf(texte = "", "", separateur) & tableau(i)
End If
Next i
Else
For i = LBound(tableau, 1) To UBound(tableau, 1)
If Not tableau(i, 1) = "" Then
texte = texte & IIf(texte = "", "", separateur) & tableau(i, 1)
End If
Next i
End If
End Function