Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Comment rendre le contenu de toute une colonne en une cellule?

rima21

XLDnaute Junior
Bonjour tout le monde,

Pourriez vous m'aider à rendre le contenu de toute une colonne en une (1) cellule séparé par un point virgule (.
Vous trouverez en pièce jointe mon expression de besoin.
Cordialement.
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,
Bonjour tintin5356,

Notre ami demandeur a excel 2010 dans laquelle la fonction TextJoin n'existe pas dans cette Version,
voici dans le classeur joint une fonction personnalisée nommée 'Joindre'

VB:
Function Joindre(rng As Range)
    Dim valeurs As Variant
    If rng.Columns.Count > rng.Rows.Count Then
        Set rng = rng.Rows(1)
        valeurs = Application.Transpose(Application.Transpose(rng.Value))
    Else
        Set rng = rng.Columns(1)
        valeurs = Application.Transpose(rng.Value)
    End If
    Joindre = Join(valeurs, ";")
End Function

Bon après-midi
 

Pièces jointes

  • Joindre.xlsm
    17.6 KB · Affichages: 19

patricktoulon

XLDnaute Barbatruc
re
bonjour Roblochon ,tintin,zineb91

bien vu le (2 dim) to (1 dim) pour passer le joint avec ton double transpose
j'y aurais pas pensé je me sert de index habituellement

VB:
' exemple de récupération de  colonne vers une variable tableau 1 dim puis string
Sub recup_col()
'récupération colonne 1 en string
    Dim plage, colon&
    plage = Range("A2:Z9000").Value    'rng to variable tableau 2 dim
    colon = 1
    plage = WorksheetFunction.Index(plage, 0, colon)    '(on obtient un tableau(2 dim)
    Debug.Print Join(Application.Transpose(plage), ";")    ' conversion en 1 dim et  en string
End Sub

' exemple de récupération de ligne  vers une variable tableau 1 dim puis string
Sub recup_lig()
'récupération ligne 1 en string
    Dim plage, ligne&
    plage = Range("A2:z100").Value    'rng to variable tableau 2 dim
    ligne = 1
    plage = WorksheetFunction.Index(plage, ligne, 0)  '(on obtient un array(1 dim)
    Debug.Print Join(plage, ";")
End Sub

ta méthode en simplifie l’écriture
 

Discussions similaires

Réponses
1
Affichages
220
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…