Microsoft 365 Fonction personnalisée

WTF

XLDnaute Impliqué
Hello le forum,

Je cherche à créer une fonction personnalisée qui serait :

- concatener les cellules de la plage - exemple (D3:G3)
- Si les cellules de la plage - exemple (D11:G11) sont égales à 1
- ajouter un espace entre chaque donnée

Par exemple :
RésultatSEADDLUT
S A L U T11111
E A D L1111

Merci de votre aide
 
Solution
Bonjour WTF, sylvanu,

Sur les dernières versions d'Excel il existe la fonction JOINDRE.TEXTE.

Voyez le fichier joint et la formule matricielle en A3 :
Code:
=JOINDRE.TEXTE(" ";VRAI;REPT(C$2:J$2;C3:J3=1))
A valider par Ctrl+Maj+Entrée et tirer vers le bas.

A+

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour WTF,
En PJ un exemple simple simple avec :
VB:
Function WTF(Lettres As Range, Nombres As Range)
L = Lettres
N = Nombres
WTF = ""
For i = 1 To UBound(N, 2)
    If N(1, i) = 1 Then WTF = WTF & L(1, i)
Next i
End Function
 

Pièces jointes

  • Classeur1.xlsm
    13.8 KB · Affichages: 15

job75

XLDnaute Barbatruc
Bonjour WTF, sylvanu,

Sur les dernières versions d'Excel il existe la fonction JOINDRE.TEXTE.

Voyez le fichier joint et la formule matricielle en A3 :
Code:
=JOINDRE.TEXTE(" ";VRAI;REPT(C$2:J$2;C3:J3=1))
A valider par Ctrl+Maj+Entrée et tirer vers le bas.

A+
 

Pièces jointes

  • Joindre texte(1).xlsx
    10.5 KB · Affichages: 1

WTF

XLDnaute Impliqué
Bonjour WTF, sylvanu,

Sur les dernières versions d'Excel il existe la fonction JOINDRE.TEXTE.

Voyez le fichier joint et la formule matricielle en A3 :
Code:
=JOINDRE.TEXTE(" ";VRAI;REPT(C$2:J$2;C3:J3=1))
A valider par Ctrl+Maj+Entrée et tirer vers le bas.

A+
Top merci Job. Je ne connaissais ni la fonction joindre texte que j'ai compris, ni REPT que pour le coup je ne maitrise pas encore.
 

WTF

XLDnaute Impliqué
Bonjour Sylvanu et Job75,
Vos 2 solutions fonctionnent très bien. J'ai juste un point : j'ai un espace qui se met pour la 1ère occurrence (par exemple : _S_A_L_U_T)

Avez vous une idée pour supprimer le 1er et avoir S_A_L_U_T

Merci bcp
 

job75

XLDnaute Barbatruc
Bonjour WTF, sylvanu,

WTF vous disiez avoir compris JOINDRE.TEXTE mais il semble que ce ne soit pas le cas :
Code:
=JOINDRE.TEXTE("_";VRAI;REPT(B$1:I$1;B2:I2=1))
A+
 

Pièces jointes

  • TEST_COMPIL(1).xlsx
    10.7 KB · Affichages: 2

Statistiques des forums

Discussions
312 305
Messages
2 087 080
Membres
103 457
dernier inscrit
fab2614