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 :

Concatenation avec boucle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 3
    Par défaut Concatenation avec boucle
    testconcat.xlsm

    Bonjour,

    Je souhaiterais par macro VBA, concatener le contenu de plusieurs cellules d'une meme ligne en mettant un séparateur pipe entre chaque contenu de cellule puis passer à la ligne suivante et ainsi de suite.

    Le nombre de colonnes et de lignes sont variables.

    Voir exemple en pièce jointe

    J'ai commencé un code (dans le fichier Excel fourni) mais cela ne fonctionne pas

    Merci pour votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour aduvillier,

    Voici une petite macro qui répond, me semble-t-il, à ton besoin.
    Tu fais ce que tu veux avec ta MsgBox en fin de 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
    Option Explicit
     
    Sub concatenation()
    Dim oCell As Range
    Dim oConc As String
     
    With Worksheets("Feuil1").UsedRange
        oConc = ""
        For Each oCell In .Cells
            With oCell
                'Si non ne veut pas prendre en compte les cellules vides, a décommenter
                'If .Value <> "" Then
                    oConc = oConc & "|" & .Value
                'End If
            End With
        Next oCell
        oConc = Right(oConc, Len(oConc) - 1)
    End With
     
    MsgBox oConc
     
    End Sub
    N'hésite pas à revenir vers moi !

    Cordialement,
    Kimy

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 3
    Par défaut
    Bonjour Kimy et merci pour ce premier code qui fonctionne plutot bien !

    Néanmoins, 2 petites choses :

    - Le résultat apparait sur 1 ligne alors que j'aimerais avoir un retour chariot à chaque changement de ligne si c'est possible
    - J'aimerai pour chaque ligne un | au début et à la fin

    Merci d'avance

  4. #4
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Et ceci :
    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
    Option Explicit
     
    Sub concatenation()
    Dim oRow As Range, oCell As Range
    Dim oConc As String
     
    With Worksheets("Feuil1").UsedRange
        oConc = ""
        For Each oRow In .Rows
            oConc = oConc & "|"
            For Each oCell In oRow.Cells
                oConc = oConc & oCell.Value & "|"
            Next oCell
            oConc = oConc & vbCrLf
        Next oRow
    End With
    oConc = Left(oConc, Len(oConc) - 1)
     
    MsgBox oConc
     
    End Sub


    Cordialement,
    Kimy

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 3
    Par défaut
    Super ! C'est parfait
    Merci beaucoup

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

Discussions similaires

  1. Concatenation avec compteur d'une boucle
    Par wassimbik dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 28/01/2010, 19h52
  2. [Tableaux] Problème avec boucle
    Par MYster dans le forum Langage
    Réponses: 6
    Dernier message: 11/11/2005, 19h39
  3. [Debutant/WinAPI] Souci avec boucle While et GetMessage()
    Par SnowStyle dans le forum Windows
    Réponses: 11
    Dernier message: 15/10/2005, 20h19
  4. pb requete avec boucle
    Par kidu dans le forum Requêtes
    Réponses: 1
    Dernier message: 31/08/2005, 15h27
  5. Réponses: 10
    Dernier message: 05/04/2005, 11h25

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