Transposer sur une seule cellule

Hulk

XLDnaute Barbatruc
Hello Forum :)

J'ai en colonne A2:Ax une liste comme ceci :

Pomme
Poire
Pêche
Nectarine
Banane
Ananas


Je souhaiterais la transposer sur une seule cellule (par ex. D1) comme ceci :

Pomme-Poire-Pêche-Nectarine-Banane-Ananas-

Pour l'instant je fais ceci..
Code:
Private Sub CommandButton1_Click()

    Dim lign As Range
    
    For Each lign In Range([A2], [A65000].End(xlUp))
    
        If Range("A" & lign.Row).Value <> "" Then
        
            Range("D1").Value = Range("A" & lign.Row).Value & "-"
        
        End If
    
    Next lign

End Sub
Mais il n'affiche que la dernière valeur de la liste -> Ananas-

Quelqu'un pour un p'tit coup de main ?

Merci d'avance pour vos propositions !

Bonne fin de journée à tous :cool:
 

Pièces jointes

  • Test.xlsm
    19.7 KB · Affichages: 53
  • Test.xlsm
    19.7 KB · Affichages: 59
  • Test.xlsm
    19.7 KB · Affichages: 57

Si...

XLDnaute Barbatruc
Re : Transposer sur une seule cellule

salut

Si... tu veux simplifier, tu peux faire
Code:
Private Sub CommandButton1_Click()
  Dim C As Range
  [D1] = ""
  For Each C In Range([A2], [A65000].End(xlUp)).SpecialCells(xlCellTypeConstants)
    [D1] = [D1] & C & "-"
  Next
  '[D1] = Left([D1], Len([D1]) - 1) 'pour enlever le dernier tiret
End Sub
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Transposer sur une seule cellule

Bonjour,

Set champ = Range([A2], [A65000].End(xlUp))
[d1] = Join(Application.Transpose(champ), "-")

Sous forme de fonction:

Function transpo(champ As Range)
transpo = Join(Application.Transpose(champ), "-")
End Function

=Transpo(A1:A5)


jb
 

Pièces jointes

  • Classeur1.xls
    23.5 KB · Affichages: 66
  • Classeur1.xls
    23.5 KB · Affichages: 73
  • Classeur1.xls
    23.5 KB · Affichages: 75
Dernière édition:

Discussions similaires

Réponses
6
Affichages
1 K

Statistiques des forums

Discussions
312 779
Messages
2 092 042
Membres
105 162
dernier inscrit
djikon