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 lignes selon un critère


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 19
    Par défaut Concaténer des lignes selon un critère
    Bonjour
    Je ne suis pas trop doué sur VBA, je recherche une macro pour concaténer des lignes selon le critère: avoir la même chaine de caractère sur sur colonneexemple.xlsxexemple.xlsx A par exemple.
    En pièce jointe un exemple.

    Merci d'avance de votre aide.

  2. #2
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 308
    Billets dans le blog
    15
    Par défaut
    Salut,

    Vous chez une macro, mais juste signaler également que vous pouvez y arriver avec un TCD
    Fichiers attachés Fichiers attachés
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc..
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 19
    Par défaut
    Merci, mais je dois avoir des cases non fusionnées, ce qu'est pas possible avec un TDC. y a t il d autre méthode ou code ..

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 436
    Par défaut
    Bonjour,

    Une façon de faire en utilisant une macro:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Option Explicit
     
    '--- considère Colonne1 du Tableau1 triée
     
    Sub Concatener()
        Dim rT1 As Range, rT2 As Range, sC1 As String, kC As Integer
        Set rT1 = Range("Tableau1").Cells(1, 1)
        Set rT2 = Range("Tableau2").Cells(1, 1)
        If Range("Tableau2").Rows.Count > 1 Then Range("Tableau2").Delete   '--- vide Tableau2
        sC1 = rT1
        While rT1 <> ""
            rT2 = rT1
            For kC = 1 To 6
                rT2.Offset(0, kC) = rT2.Offset(0, kC) & rT1.Offset(0, kC) & vbLf
            Next kC
            Set rT1 = rT1.Offset(1, 0)
            If rT1 <> sC1 Then              '--- nouvelle valeur
                For kC = 1 To 6             '--- pour supprimer les vbLf inutiles
                    rT2.Offset(0, kC) = Left(rT2.Offset(0, kC), Len(rT2.Offset(0, kC)) - 1)
                Next kC
                sC1 = rT1
                Set rT2 = rT2.Offset(1, 0)
            End If
        Wend
    End Sub
    Cordialement.
    Fichiers attachés Fichiers attachés

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 19
    Par défaut
    Merci pour le macro, est ce que vous pouvez me dire svp comment je peux faire pour adapter la macro pour que elle fonctionne sur n importe quel fichier, avec un tableau plus grand ( plus de colonnes).

    Merci d'avance de votre aide

    Cordialement

  6. #6
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 436
    Par défaut
    Le code proposé fonctionne pour n'importe quels tableaux. Il suffit que le premier soit nommé Tableau1 et que le second soit nommé Tableau2. Les noms des colonnes sont identiques et placées dans le même ordre.

    Cordialement.

  7. #7
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 566
    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 566
    Par défaut
    Bonjour à tous
    Citation Envoyé par jamal.obito Voir le message
    Merci, mais je dois avoir des cases non fusionnées, ce qu'est pas possible avec un TDC. y a t il d autre méthode ou code ..
    Alors pourquoi dans le résultat attendu tu as fusionné les cellules ?

    Je partage l'avis de Raccourcix

Discussions similaires

  1. [XL-2016] Fusionner des lignes selon deux critères
    Par amayasanfield dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/09/2020, 10h43
  2. Concaténer des lignes selon un identifiant commun
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 02/02/2020, 12h17
  3. [XL-2010] Supprimer des lignes selon 3 critères et sur un onglet choisi
    Par breakage dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/10/2015, 07h29
  4. [Toutes versions] Macro pour sélectionner des lignes selon un critère
    Par logoyvelines dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/09/2011, 10h20
  5. [E-03] Macro Extraire des Lignes selon critère
    Par willybass dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 26/03/2009, 07h33

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