Concaténation Excel avec beaucoup de données

Résolu
jimix31 Messages postés 47 Date d'inscription   Statut Membre Dernière intervention   -  
jimix31 Messages postés 47 Date d'inscription   Statut Membre Dernière intervention   -
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. jimix31 Messages postés 47 Date d'inscription   Statut Membre Dernière intervention   2
     
    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
  2. redaiwa Messages postés 370 Statut Membre 119
     
    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
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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