Excel: concaténer des valeurs différentes
Fermé
saend
-
28 déc. 2011 à 17:57
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 - 29 déc. 2011 à 23:51
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 - 29 déc. 2011 à 23:51
A voir également:
- Excel: concaténer des valeurs différentes
- Liste déroulante excel - Guide
- Formule excel - Guide
- Excel nombre de valeurs différentes ✓ - Forum Excel
- Déplacer une colonne excel - Guide
- Aller à la ligne excel - Guide
1 réponse
michel_m
Messages postés
16593
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 mars 2023
3 292
Modifié par michel_m le 28/12/2011 à 19:18
Modifié par michel_m le 28/12/2011 à 19:18
Bonjour
On pourrait le faire avec une matricielle-doliprane, mais avec 15000 lignes, tu aurais largement le temps d'aller papoter devant la machine à café
avec une tite macro
Michel
On pourrait le faire avec une matricielle-doliprane, mais avec 15000 lignes, tu aurais largement le temps d'aller papoter devant la machine à café
avec une tite macro
Sub transposer_uniques()
Dim dico As Object, derlig As Integer, cptr As Integer, ref As String, liste
derlig = Columns("A").Find("*", , , , , xlPrevious).Row
Set dico = CreateObject("scripting.dictionary")
For cptr = 1 To derlig
ref = Cells(cptr, "A")
If Not dico.exists(ref) Then dico.Add ref, 1
Next
liste = dico.keys
Range("B2") = Join(liste, "-")
End Sub
Michel
29 déc. 2011 à 11:05
par contre, en l'occurrence c'était un exemple mais mon cas ne se limite pas à concaténer des donnees en colonne A, mais sur pls colonnes différentes, donc plutot en colonne "-1". Est il possible d'adapter la macro pour qu'elle agisse sur les données de la colonne d'avant sans fixer le n° de la colonne?
29 déc. 2011 à 11:40
1/ Pourquoi ne pas l'avoir écrit au 1° post ? :-((
2/ nouvelle demande incompréhensible
29 déc. 2011 à 18:46
:(
donc: j'ai donné l'exemple pour le cas où mes données à concaténer sont en colonne A, mais j'ai plusieurs plages de données à concaténer, qui sont dans différentes colonnes, et je les concatène dans la colonne à droite de celle où se trouvent les données!
Le nombre de lignes n'est pas fixe non plus :-(
En résumé: parfois je dois concaténer les cellules A1 à A4 (et le résultat de la concaténation va en cellule B1) comme ds mon exemple initial, et parfois je cherche à concaténer les cellules F6 à F14 en cellule G6... etc... je sais c pas simple.... en tout cas j'espère avoir été plus claire et te remercie pour ton aide!!
bonnes fêtes !
29 déc. 2011 à 23:51
Saend : as-tu un moyen d'identifier les colonnes à traiter et les lignes de début et de fin des zones à concaténer sans doublon?
Sans une telle identification, même avec une fonction vba avec sélection de la zone à traiter, tu vas passer un sacré temps avec tes 15.000 lignes!
Par défaut, et en reprenant la solution de michel_m, voici la fonction que tu peux utiliser :
Function concat_zone(vZone As Range) As String Dim dico As Object, vCell As Range, liste Set dico = CreateObject("scripting.dictionary") For Each vCell In vZone If Not dico.exists(vCell.Value2) Then dico.Add vCell.Value2, 1 Next liste = dico.keys concat_zone = Join(liste, "-") End FunctionCordialement