Concaténation Excel avec beaucoup de données

Résolu
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!

--
Dj Jimix
Swiss Hardstyler
----------------
Dans le doot, reboot

4 réponses

  1. 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
    1. 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
      1. Contributeur
        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