Concatener toute une ligne
Résolu
Anthelm
Messages postés
202
Statut
Membre
-
maxime365472 -
maxime365472 -
Bonjour,
Tout est dans le titre!
=CONCATENER(Repères!B3:XFD3), ça ne marche pas!
Idéalement j'aimerais que ma cellule attrape toute les cellules texte à partir de la colonne B. Comme si je faisais
=CONCATENER(Repères!B3&Repères!C3&Repères!D3)
(imaginons que ma ligne 3 soit une simple suite
Le résultat attendu doit être sous format texte: abcdefghi...
Idéalement, il faudrait séparer les résultats par des virgules...
Si quelqu'un peut m'apporter un début d'indice, ce serait formidable.
Merci beaucoup!
Tout est dans le titre!
=CONCATENER(Repères!B3:XFD3), ça ne marche pas!
Idéalement j'aimerais que ma cellule attrape toute les cellules texte à partir de la colonne B. Comme si je faisais
=CONCATENER(Repères!B3&Repères!C3&Repères!D3)
(imaginons que ma ligne 3 soit une simple suite
Le résultat attendu doit être sous format texte: abcdefghi...
Idéalement, il faudrait séparer les résultats par des virgules...
Si quelqu'un peut m'apporter un début d'indice, ce serait formidable.
Merci beaucoup!
A voir également:
- Concatener toute une ligne
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Concatener deux cellules excel - Guide
- Formulaire en ligne de meta - Guide
- Apparaitre hors ligne instagram - Guide
3 réponses
Bonjour,
Voici une fonction personnalisée vous permettant de concatener :
> une ligne entière (jusqu'à la première cellule vide),
> une colonne entière (jusqu'à la première cellule vide),
> une plage de cellule,
> un Array à 1 dimension (uniquement en VBA),
Exemples d'utilisation :
Pour une cellule (renvoie la valeur contenue dans cette cellule) : =CONCATENER_PLUS(A1;", ")
Pour une colonne : =CONCATENER_PLUS(J:J;" / ")
Pour une ligne : =CONCATENER_PLUS(1:1;" : ")
Pour une plage : =CONCATENER_PLUS(C1:F1;", ")
ou encore : =CONCATENER_PLUS(C1:F5;", ")
Renvoient une erreur :
=CONCATENER_PLUS(1;", ")
Pour des cellules non conjointes, utiliser CONCATENER simplement.
Voici une fonction personnalisée vous permettant de concatener :
> une ligne entière (jusqu'à la première cellule vide),
> une colonne entière (jusqu'à la première cellule vide),
> une plage de cellule,
> un Array à 1 dimension (uniquement en VBA),
Public Function CONCATENER_PLUS(TabOrRange As Variant, Optional strSep As String, Optional ByRow As Boolean) As String
Dim temp As Variant, i As Long, j As Long, fin As Long, R As Range
If TypeOf TabOrRange Is Excel.Range Then
If TabOrRange.Rows.Count = 1 And TabOrRange.Columns.Count = 1 Then
CONCATENER_PLUS = TabOrRange.Value
ElseIf TabOrRange.Rows.Count > 1 And TabOrRange.Columns.Count > 1 Then
If ByRow Then
ReDim temp(1 To TabOrRange.Rows.Count) As String
For i = 1 To TabOrRange.Rows.Count
For j = 1 To TabOrRange.Columns.Count
temp(i) = temp(i) & strSep & TabOrRange.Cells(i, j).Text
Next
temp(i) = Right$(temp(i), Len(temp(i)) - Len(strSep))
Next
CONCATENER_PLUS = Join(temp, strSep)
Else
ReDim temp(1 To TabOrRange.Rows.Count) As String
For i = 1 To TabOrRange.Columns.Count
For j = 1 To TabOrRange.Rows.Count
temp(j) = TabOrRange.Cells(i, j).Text
Next
CONCATENER_PLUS = CONCATENER_PLUS & strSep & Join(temp, strSep)
Next
CONCATENER_PLUS = Right$(CONCATENER_PLUS, Len(CONCATENER_PLUS) - Len(strSep))
End If
Else
fin = TabOrRange.Rows.Count
If fin = 1 Then fin = TabOrRange.Columns.Count
ReDim temp(1 To fin)
i = 1
Do While TabOrRange.Cells(i).Value <> vbNullString And i <= fin
temp(i) = TabOrRange.Cells(i)
i = i + 1
Loop
ReDim Preserve temp(i - 1)
CONCATENER_PLUS = Join(temp, strSep)
CONCATENER_PLUS = Left$(CONCATENER_PLUS, Len(CONCATENER_PLUS) - Len(strSep))
Erase temp
End If
ElseIf IsArray(TabOrRange) Then
CONCATENER_PLUS = Join(TabOrRange, strSep)
Else
CONCATENER_PLUS = "#VALUE"
End If
End Function
Exemples d'utilisation :
Pour une cellule (renvoie la valeur contenue dans cette cellule) : =CONCATENER_PLUS(A1;", ")
Pour une colonne : =CONCATENER_PLUS(J:J;" / ")
Pour une ligne : =CONCATENER_PLUS(1:1;" : ")
Pour une plage : =CONCATENER_PLUS(C1:F1;", ")
ou encore : =CONCATENER_PLUS(C1:F5;", ")
Renvoient une erreur :
=CONCATENER_PLUS(1;", ")
Pour des cellules non conjointes, utiliser CONCATENER simplement.
Votre fonction est très utile,
Cependant j'en ai une utilisation particulière, je possède des cellules vides dans le jeux de données, J'aimerai l'utiliser lignes par lignes cependant j'ai des cellules vides dans mes lignes
Comment est ce que je peux utiliser la fonction ?
Sinon vous dites que si les cellules non conjointes, utiliser concaténer simplement ?
Ou trouver la fonction concaténer ?
Merci de votre réponse
Cordialement