Microsoft 365 Joindre des textes avec cellules vides

dauof

XLDnaute Nouveau
Bonjour,

je souhaiterais joindre des textes dans une ligne sans doublons avec une formule, j'ai cette formule:
=JOINDRE.TEXTE(",";;SI(EQUIV(A2:N2;A2:N2;0)=(COLONNE(A2:N2)-COLONNE(A2)+1);A2:N2;""))
Mais dès lors qu'il y a une cellule vide, la formule ne fonctionne pas. J'aimerai pouvoir joindre les textes en ignorant les cellules si le cas se présente.

Je vous remercie de votre retour
 

Pièces jointes

  • exemple.xlsx
    11.1 KB · Affichages: 6

Hasco

XLDnaute Barbatruc
Bonjour,

Joindre.texte est une fonction apparue dans les versions excel 2019 et supérieures.

Il se dit que @patricktoulon a développé une fonction qui fait la même chose, mais il se trouve que j'avais dès 2007 développé la même ici, avec les mêmes variables et le même test de début.

Je vous laisse trouver.

Cordialement
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
et pour le coup j'ajoute la prise en charge des cellules vides
VB:
'********************************************
'fonction JOINDRE_TEXTE pour  les versions EXCEL inferieur à 2016
'patricktoulon
' version 1.0
'utilisation en formule:
'=JOINDRE_TEXTE2007(A1:A3;"-")' join plusieurs cellule contigues  de la meme colonne
'=JOINDRE_TEXTE2007(A1:C1;"-")' join plusieurs cellule contigues de la meme ligne
'*******************************************
Function JOINDRE_TEXTE2007(r As Range, Char As String)
Dim Tbl
If r.Rows.Count = 1 Then Tbl = Application.Index(r.Value, 1, 0) Else Tbl = Application.Transpose(r)
JOINDRE_TEXTE2007 = Replace(Application.Trim(Join(Tbl, " ")), " ", Char)
End Function

Sub test5()
MsgBox JOINDRE_TEXTE2007([A1:A8], "-")
MsgBox JOINDRE_TEXTE2007([A1:h1], "-")
End Sub
 

patricktoulon

XLDnaute Barbatruc
re
mieux encore !!
et pour le coup j'ajoute la possibilité de garder les espaces entre mot dans une même cellule
VB:
'********************************************
'fonction JOINDRE_TEXTE pour  les versions EXCEL inferieur à 2016
'patricktoulon
' version 1.0
'utilisation en formule:
'=JOINDRE_TEXTE2007(A1:A3;"-")' join plusieurs cellule contigues  de la meme colonne
'=JOINDRE_TEXTE2007(A1:C1;"-")' join plusieurs cellule contigues de la meme ligne
'*******************************************
Function JOINDRE_TEXTE2007(r As Range, Char As String)
Dim Tbl, T$
If r.Rows.Count = 1 Then Tbl = Application.Index(r.Value, 1, 0) Else Tbl = Application.Transpose(r)
T = Join(Tbl, "|"): T = Replace(T, " ", "*"): T = Application.Trim(Replace(T, "|", " "))
JOINDRE_TEXTE2007 = Replace(Replace(T, " ", Char), "*", " ")
End Function

Sub test5()
MsgBox JOINDRE_TEXTE2007([A1:A8], "-")
MsgBox JOINDRE_TEXTE2007([A1:h1], "-")
End Sub
demo.gif
 

Discussions similaires

Réponses
1
Affichages
300