Texte JOINDRE_TEXTE2007

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
comme personne ne pense au pauvres utilisateur qui n'ont pas 365 ou 2016
je me lance
une petite fonction similaire a joindre.texte mais qui fonctionne pour tout le monde
fonctionne pour vba et en formule
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 = Join(Tbl, Char)
End Function

Sub test5()
MsgBox JOINDRE_TEXTE2007([A1:A3], "-")
MsgBox JOINDRE_TEXTE2007([A1:C1], "-")
End Sub
 

patricktoulon

XLDnaute Barbatruc
petit ajout
prise en charge des cellules vides tout en gardant les espace entre mots 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
 

Tabib0404

XLDnaute Nouveau
Bonjour,
MERCI et GRAND MERCI pour cette formule!

Par ailleurs, je voudrais savoir s'il y a une possibilité d'utiliser cette formule seulement pour les cellules contenant des nombres?

Merci.
 

patricktoulon

XLDnaute Barbatruc
Bonjour
je ne vois pas ce qui pourrait l’empêcher
demo1.gif
 

Statistiques des forums

Discussions
315 261
Messages
2 117 857
Membres
113 354
dernier inscrit
caillet