TOP

Connexion du texte dans les cellules par condition (CONCATIF)

Description

Disons que nous avons un tableau de prêts avec la sécurité correspondante. Nous devons, par exemple, afficher une liste de garanties pour chaque prêt dans une cellule.

Excel ne peut nous fournir qu'une simple fonction CONCATENATE, mais vous devrez sélectionner manuellement les cellules nécessaires. Afin de simplifier le travail, nous devons automatiser le processus de combinaison de texte provenant de différentes cellules selon une condition. Ainsi, si vous avez besoin de « concaténer » rapidement du texte provenant de différentes cellules à l’aide de la condition IF, vous devez alors écrire votre propre fonction.


Tableau des prêts garantis :

VBA code pour la fonction CONCATIF

Créons donc notre propre fonction et appelons-la CONCATIF. Pour cela, ouvrez le menu Service - Macros - Visual Basic Editor, insérez le module VBA (menu Insert - Module) et copiez-y le texte de cette fonction :

Function CONCATIF(Table As Range, SearchValue As Variant, Table2 As Range)
	'moonexcel.com.ua
	Dim i As Integer
	
	For i = 1 To Table.Rows.Count
		If Table.Cells(i, 1) = SearchValue Then
			If Not IsEmpty(Table2.Cells(i, 1).Value) Then
			    CONCATIF = CONCATIF & Table2.Cells(i, 1).Value & "; "
			End If
		End If
	Next i
	
	CONCATIF = Left(CONCATIF, Len(CONCATIF) - 2)
End Function

Fermez Visual Basic Editor et revenez à Excel.

Maintenant, dans Function wizard dans la catégorie User défini vous pouvez trouver notre fonction CONCATIF et l'utiliser. La syntaxe de cette fonction est la suivante :

=CONCATIF (colonne de valeurs de recherche ; valeur de recherche ; colonne de données à combiner)

Nous aurons le résultat suivant :

Enfin, vous devez verrouiller les plages A2:A10 et C2:C10 avec un signe dollar ($) afin que les plages ne se déplacent pas vers le bas lorsque vous copiez la fonction.

Articles sur le sujet :