Concaténation Excel avec beaucoup de données

Résolu/Fermé
jimix31 Messages postés 40 Date d'inscription jeudi 4 juin 2009 Statut Membre Dernière intervention 11 novembre 2014 - 11 nov. 2014 à 10:37
jimix31 Messages postés 40 Date d'inscription jeudi 4 juin 2009 Statut Membre Dernière intervention 11 novembre 2014 - 11 nov. 2014 à 11:26
Bonjour,

Je cherche à concaténer un grand nombre de données avec excel, je vais vous faire un exemple ça sera plus simple:
J'ai, dans la colonne "F" des données comme celles-ci:
F2: 1AA101
F3: 1AA102
...
F70743: 6ZA902

Et je voudrais les concaténer pour en arriver là:
=F2&"|0|0||"&F3&"|0|0||"&F4&"|0|0||"&...&"|0|0||"&F70743&"|0|0"

Ce qui donne comme résultat:
1AA101|0|0||1AA102|0|0||1AA103|0|0||...|0|0||6ZA902|0|0

Auriez vous un moyen simple et rapide pour faire ça? ou une idée?

Merci!
A voir également:

4 réponses

jimix31 Messages postés 40 Date d'inscription jeudi 4 juin 2009 Statut Membre Dernière intervention 11 novembre 2014 2
11 nov. 2014 à 11:26
Merci pour vos réponses, je ne les ai pas testées car j'ai réussi à faire ma ligne avec notepad++ ^^'

Mais effectivement il y a trop de caractères pour tout mettre dans une cellule, donc j'ai abandonné cette idée.
1
redaiwa Messages postés 351 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 25 janvier 2024 119
11 nov. 2014 à 10:59
Salam jimix31.

Essaye ce code VBA :


Private Sub CONCATENER()
c = ""
For ligne = 2 To Range("F2").End(xlDown).Row
If ligne = Range("F2").End(xlDown).Row Then
c = c & Range("F" & ligne) & "|0|0"
Else
c = c & Range("F" & ligne) & "|0|0||"
End If
Next ligne
Range("H2") = c
End Sub


Le résultat concaténé est placé en cellule H2.

:)
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 423
11 nov. 2014 à 11:10
Bonjour

Une solution via une macro
https://www.cjoint.com/?3Kllo3mJ40a

RQ. Je ne sais pas ce que ça va donner dur 70000 lignes!

Cdlmnt
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 11/11/2014 à 11:30
Bonjour

petite question : en me basant sur tes données (70000 lignes), comment afficher un texte de env. 840000 caractères sur Excel ?

sur 70000 lignes, il est préférable de passer par une variable de tableau question rapidité.

Option Explicit

Sub concaténer_lourd()
Dim Derlig As Long, T_in(), Idx As Long, Concat As String
Dim Start As Single
    Application.ScreenUpdating = False
    Start = Timer
    Derlig = Columns("F").Find("*", , , , , xlPrevious).Row
    T_in = Application.Transpose(Range("F2:F" & Derlig))
    
    For Idx = 1 To UBound(T_in)
        Concat = Concat & T_in(Idx) & "|0|0||"
     Next
     
     Range("H2") = Concat
     Application.ScreenUpdating = False
     MsgBox " durée concaténation: " & Timer - Start & " sec."
End Sub


essai sur 11000lignes en 0,7 secondes

Michel
0