IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Concaténer des milliers de lignes dans une même colonne


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Business Analyst
    Inscrit en
    Juillet 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Business Analyst

    Informations forums :
    Inscription : Juillet 2011
    Messages : 14
    Points : 12
    Points
    12
    Par défaut Concaténer des milliers de lignes dans une même colonne
    Bonjour

    Je cherche une macro pour etre capable de concaténer des milliers de lignes (plus de 12 000).
    J'avais trouvé la macro suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function ConcatRange(inputRange As Range, Optional delimiter As String) As String
        Dim oneCell As Range
        With inputRange
            If Not (Application.Intersect(.Parent.UsedRange, .Cells) Is Nothing) Then
                For Each oneCell In Application.Intersect(.Parent.UsedRange, .Cells)
                    If oneCell.Text <> vbNullString Then
                        ConcatRange = ConcatRange & delimiter & oneCell.Text
                    End If
                Next oneCell
                ConcatRange = Mid(ConcatRange, Len(delimiter) + 1)
            End If
        End With
    End Function
    Mais ca bloque.
    Avez vous des idées? est ce réalisable d'ailleurs?

    Merci

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 419
    Points : 16 262
    Points
    16 262
    Par défaut
    Bonjour

    Les cellules ont une taille limite... d'où sans doute la blocage dont tu ne donnes pas les détails.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  3. #3
    Membre à l'essai
    Femme Profil pro
    Business Analyst
    Inscrit en
    Juillet 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Business Analyst

    Informations forums :
    Inscription : Juillet 2011
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    En fait ca me donne une erreur de valeur, mais je vais y aller petit bout par petit bout.

    Par contre, avez vous une idée de où je fois modifier le code pour qu'entre chacune de mes lignes, cela affiche une virgule? ','

    Je tiens à préciser que j'ai essayer de modifier dans la barre directement en mettant
    =ConcatRange(A4:A9 ",")

    Mais ca ne marche pas

    Merci

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    A mettre dans un module public
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function ConcatRange(Rng As Range) As String
    Dim c As Range
    Dim S As String
     
    For Each c In Rng
        If c.Text <> vbNullString Then S = S & "," & c.Text
    Next c
    If Len(S) > 1 Then ConcatRange = Mid(S, 2)
    End Function
    En B12:
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Business Analyst
    Inscrit en
    Juillet 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Business Analyst

    Informations forums :
    Inscription : Juillet 2011
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Merci ))

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/03/2013, 20h46
  2. SQL : Regrouper des lignes dans une seule colonne
    Par manoir62 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/02/2009, 18h06
  3. Affichage des sauts de lignes dans une zone de texte
    Par Whombat dans le forum Langage
    Réponses: 3
    Dernier message: 25/01/2009, 02h47
  4. Réponses: 2
    Dernier message: 16/05/2008, 14h43
  5. Réponses: 2
    Dernier message: 24/08/2007, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo