CONCATENATE plus de 5 colonnes

Résolu
Bonjour,

Je bosse sur un fichier de 500 000 lignes - et je dois concaténer du texte dans la colonne 1 pour pouvoir ensuite convertir proprement mes données (text to column).
La formule CONCATENATE ne fonctionne pas (limitée à 5 colonnes et je peux en avoir une douzaine).
Mon code fonctionne mais prend beaucoup trop de temps - même si seulement la moitié des lignes sont concernées.

voilà mon code :
I = 2
While Cells(I, 1) <> ""
If Cells(I, 2) <> "" Then
textcomplet = Cells(I, 1).Text
col = 2
While Cells(I, col) <> ""
textcomplet = textcomplet & Cells(I, col).Text
col = col + 1
Wend
Range(Cells(I, 1), Cells(I, col)).ClearContents
Cells(I, 1).Formula = textcomplet
End If
I = I + 1
Wend

Merci d'avance !

5 réponses

  1. Contributeur
    Bonjour

    maquette sur 4100 lignes et 12 colonnes concaténée en 0,2 secondes environ
    https://mon-partage.fr/f/0y82tcek/
    maintenant j'ai un doute sur 500000 lignes.... :-/
    1. => 498 720 lignes en 23.48 secondes

      C'est énorme !

      J'en étais à 10% avec ma méthode, quelques progrès à faire...

      498 720 mercis Michel !
      1. Re-bonjour, je me suis réjouis un peu vite, le temps ci-dessus correspond en fait au traitement de 3 colonnes.
        2 petites remarques :
        - pour la recherche dernière colonne, j'ai utilisé xlLastCell
        - avec ce nombre de lignes, la capacité est limitée à 8 colonnes pour le T_in et moins pour le T_out. (Out of memory).
        J'ai donc fait une boucle pour traiter colonne par colonne et ça fonctionne très bien (c'est ultra rapide !).
        Merci encore, bonne soirée
    2. Bonjour,
      Le fichier n'étant plus disponible en téléchargement, serait-il possible de l'avoir à nouveau, ou d'avoir le code svp?
      1. Contributeur
        Bonjour
        Désolé le classeur a été effacé (sans utilité pour moi)
        1. Contributeur
          Combien de lignes? combien de colonnes ?

          colonnes jointives (par ex : A,B,C ) ou non ( A, ,C,D, , ,F) ?