• Initiateur de la discussion Initiateur de la discussion mic6259
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

mic6259

XLDnaute Occasionnel
Bonjour
D'après la pièce jointe, j'aimerais Concatener dans la cellule L16 Les cellule A14 a BJ14 et avoir le même nombre de 0
Par exemple 06,00,00,17 etc... .
Pourriez-vous m'expliquer la méthode pour que je puisse le faire sur les grilles suivantes.

Merci pour votre aide
 

Pièces jointes

  • 1.xlsx
    1.xlsx
    16.9 KB · Affichages: 19
Tu peux utiliser un pack de fonction supplémentaire à installer ( ou tu retrouveras une fonction joindre, avec un séparateur à définir)
Ou en v18
VB:
=L18&$U$18&M18&$U$18&N18&$U$18&O18&$U$18&P18&$U$18&Q18&$U$18&Q18&$U$18&R18&$U$18&S18&$U$18&T18
avec une virgule en U18
 

Pièces jointes

Bonjour st007
Merci beaucoup pour le pack, je le conserve précieusement, il pourrait m'être utile.
J'ai repris ton ta première réponse et Jai tout simplement concatener de K14 a S14 et çà fonctionne.
Je considère donc la question comme résolu
Cordialement
 
Bonjour mic6259, st007,

je te retourne ton fichier Excel (converti en .xlsm) ; les 8 formules proposées sont toutes basées sur ma fonction personnalisée JNE() : Joindre Nombres Entiers ; seuls les paramètres sont différents.

en M16 : =JNE(", ";0;A2:I4)
en M17 : =JNE(", ";1;A2:I4)

en M19 : =JNE(", ";0;A2:I4;"00")
en M20 : =JNE(", ";1;A2:I4;"00")

en M24 : =JNE(", ";0;A2:I4;;1)
en M25 : =JNE(", ";1;A2:I4;;1)

en M27 : =JNE(", ";0;A2:I4;"00";1)
en M28 : =JNE(", ";1;A2:I4;"00";1)

d'où ces résultats :

Résultats des 8 formules.jpg


code VBA :

VB:
Option Explicit

'JNE : Joindre Nombres Entiers

'5 paramètres (les 2 derniers sont optionnels) :
'  sép : séparateur ; par exemple ", " (virgule espace)
'  ivd : ignorer vide ; 0 = non ; 1 = oui
'  plg : plage ; par exemple A2:I4
'  fmt : format de nombre d'une donnée ; ex : "00"
'  slc : sens de lecture en colonne ; 0 = non ; 1 = oui

Function JNE(sép$, ivd As Byte, plg As Range, Optional fmt$, Optional slc As Byte) As String
  Dim chn$, v0&, s0$, s1$, s2$, l1&, l2&, c1%, c2%, i&, j%
  s0 = plg.Address(0, 0): s1 = Split(s0, ":")(0): s2 = Split(s0, ":")(1)
  l1 = Range(s1).Row: c1 = Range(s1).Column: l2 = Range(s2).Row: c2 = Range(s2).Column
  If slc = 0 Then
    For i = l1 To l2
      For j = c1 To c2
        v0 = Val(Cells(i, j))
        If fmt = "" Then s0 = CStr(v0) Else s0 = Format(v0, fmt)
        If v0 <> 0 Or (v0 = 0 And ivd = 0) Then chn = chn & s0 & sép
      Next j
    Next i
  Else
    For j = c1 To c2
      For i = l1 To l2
        v0 = Val(Cells(i, j))
        If fmt = "" Then s0 = CStr(v0) Else s0 = Format(v0, fmt)
        If v0 <> 0 Or (v0 = 0 And ivd = 0) Then chn = chn & s0 & sép
      Next i
    Next j
  End If
  JNE = Left$(chn, Len(chn) - Len(sép))
End Function

si besoin, tu peux demander une adaptation.
merci de me donner ton avis. 🙂

soan
 

Pièces jointes

Re,

Une autre proposition de fonction (légèrement moins paramétrable...😁) :
VB:
Function ConcatGrille(MesCellules As Range) As String
'
Dim c As Range
Dim MonTexte As String

    For Each c In MesCellules
        MonTexte = MonTexte & Right("00" & c.Value, 2) & ","
    Next c

    ConcatGrille = Left(MonTexte, Len(MonTexte) - 1)

End Function

Exemple d'utilisation : écrire en L15 la formule =ConcatGrille(A2:I4)
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
129
  • Question Question
Microsoft 365 Graphique
Réponses
3
Affichages
124
  • Question Question
Réponses
5
Affichages
297
  • Question Question
Microsoft 365 Graphique à bulles
Réponses
6
Affichages
244
Retour