Concatener une plage de cellule

Fermé
Malgven - 14 mars 2016 à 12:15
Vahde Messages postés 3 Date d'inscription mercredi 1 mars 2017 Statut Membre Dernière intervention 1 mars 2017 - 1 mars 2017 à 10:00
Bonjour,

J'aimerai concatener une plage de cellule sous excel afin que mes données contenues dans des cellules différentes soient regroupées dans une seule case et séparées par une virgule.
Mes données sont des nombres avec des décimaux séparés par un point (ex : 5.45) et j'aimerais qu'ils le restent dans le processus.

Je voulais faire une Inputbox pour sélectionner la plage de cellule que je veux fusionner en une mais je bloque complétement et je n'arrive pas à faire marcher cette macro !

Quelqu'un aurait une idée ?

Merci d'avance.



2 réponses

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 524
14 mars 2016 à 13:25
Bonjour,

Essaie comme cela
Sub Test()
Dim ref As Range, Cel As Range
Dim Texte As String
Set ref = Application.InputBox("Veuillez sélectionner les cellules sur la feuille", Type:=8)
For Each Cel In ref
Texte = Texte & Cel.Value & ", "
Next Cel
MsgBox "Valeurs concaténées : " & Left(Texte, Len(Texte) - 2)
End Sub

A+
1
Bonjour,

Merci beaucoup de ta réponse !
ça marche presque.
En effet, du coup, j'obtiens le résultat dans la Box alors que j'aimerais qu'il soit dans une cellule pour pouvoir le copier-coller dans un autre logiciel.

As tu (encore) une idée ?

Merci !
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 524 > Malgven
14 mars 2016 à 14:00
Je n'ai pas indiqué le résultat dans une cellule parce que je ne sais pas dans quelle cellule tu souhaites le placer.

Exemple avec le résultat dans A1 :
Tu remplaces
MsgBox "Valeurs concaténées : " & Left(Texte, Len(Texte) - 2)
par
Range("A1")=Left(Texte, Len(Texte) - 2)

A+
0
Malgven > Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016
14 mars 2016 à 14:23
Oui ça marche merci beaucoup !

Et pour faire en sorte que la box mette le résultat dans la cellule active ? :o
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 524 > Malgven
14 mars 2016 à 14:43
Activecell=Left(Texte, Len(Texte) - 2)

Etonnant, non ?

A+
0
Malgven > Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016
14 mars 2016 à 14:48
Pff ! C'est parfait !
Merci beaucoup.
Toute seule, je me suis vraiment rendue folle pour des solutions simples au final.

Encore merci !
0