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 en VBA ???


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    davbad
    Invité(e)
    Par défaut Concaténer en VBA ???
    Bonjour,

    Je ne suis pas très connaisseur de VBA et je souhaiterai un peu d'aide.
    J'ai une feuille excel qui se présente un peu comme ça.

    ColA ColB ColC ColD ColE ColF ColG...
    200 100 25 500
    58 358 56 845 568 10
    25
    357 412 4
    ...

    Je souhaiterai dans la colonne A avoir la concaténation des colonnes suivantes avec ", " entre chaque chiffre.
    Mon nombre de colonnes n'est jamais le même et peut aller à plus de 35.
    J'ai réussi à faire quelque chose avec le code qui est dans ce topic : http://www.developpez.net/forums/sho...=565671&page=2

    mais ma difficulté est de s'arrêter à la dernière colonne renseignée.
    Je crois avoir compris qu'il faut que dans la boucle, il faut que je mette une variable renseignée avec la dernière référence de colonne mais je ne sais pas comment faire?
    Help, please help
    Dernière modification par davbad ; 18/06/2008 à 14h32.

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Essaye 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
    Sub test()
    Dim i As Integer, j As Integer, result As String
     
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
            For j = 1 To Cells(i, Columns.Count).End(xlToLeft).Column
                If result = "" Then
                    result = Cells(i, j)
                Else
                    result = result & "; " & Cells(i, j)
                End If
            Next
        Cells(i, 1) = result
        result = ""
    Next
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 25
    Par défaut
    Bonjour davbad,

    Le code suivant devrais faire ce que tu recherches, indépendamment du nombre de lignes ou de colonnes.

    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
     
    Sub ConcatenerSurDerniereLigne()
     
        Dim LimiteHor As Long, LimiteVer As Long
        Dim i As Integer, j As Integer
        Dim Phrase As String
     
        LimiteHor = Cells(1, Columns.Count).End(xlToLeft).Column
        Phrase = vbNullString
     
        For i = 1 To LimiteHor
            LimiteVer = Cells(Rows.Count, 1).End(xlUp).Row
            For j = 1 To LimiteVer
                If j <> LimiteVer Then
                    Phrase = Phrase & Cells(j, i) & ","
                Else
                    Phrase = Phrase & Cells(j, i)
                End If
            Next j
            Cells(j, i) = Phrase
            Phrase = vbNullString
        Next i
    End Sub

  4. #4
    davbad
    Invité(e)
    Par défaut
    Bonjour et merci pour vos réponses rapides,

    Les deux codes que vosu m'avez fourni ne fonctionnent pas.
    Peut-être est-ce parce que j'ai des lignes à blanc dans mon fichier.
    Je vous joins le fichier excel et c'est la colonne D qui est à renseigner avec les colonnes suivantes.

    Cordialement
    index.xls

  5. #5
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Les deux codes que vosu m'avez fourni ne fonctionnent pas.
    Si si le code fonctionne très bien mais "je ne sais pas l'adapter à mon cas me semble plus judicieux"
    Peut-être est-ce parce que j'ai des lignes à blanc dans mon fichier.
    Le code respecte ton énoncé de départ !
    Pourquoi avoir dit mes données sont en ColA, ColB, ColC etc... alors que ce n'est pas le cas ?

    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
    Sub test()
    Dim i As Integer, j As Integer, result As String
     
    For i = 2 To Cells(Rows.Count, 5).End(xlUp).Row
        If Cells(i, 5) <> "" Then
            For j = 5 To Cells(i, Columns.Count).End(xlToLeft).Column
                If result = "" Then
                    result = Cells(i, j)
                Else
                    result = result & "; " & Cells(i, j)
                End If
            Next
            Cells(i, 4) = result
            result = ""
        End If
    Next
    End Sub

  6. #6
    davbad
    Invité(e)
    Par défaut
    Re,

    Désolé de m'être mal exprimé dans l'énoncé de mon pb et par la suite également.
    Je pensais pouvoir, avec un cas général, adapter le code pour mon souci mais mes connaissances vb sont tellement mauvaises et le temps me manquant, je n'ai pas réussi.
    Il n'était pas question pour moi de mettre en doute le code que vous m'avez fourni, mais plutôt un défaut d'information de ma part.
    En tout cas merci, j'ai pu grâce à vous, trouver une solution.

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

Discussions similaires

  1. [XL-2007] Concaténation Matricielle VBA
    Par Wini29 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/05/2013, 21h58
  2. Calcul max et concaténation dans VBA Excel
    Par pontoise dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/11/2008, 14h39
  3. VBA Excel: Concaténation
    Par pmboutteau dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/02/2006, 09h55
  4. concaténation en vba dans une formule de cellule Excel
    Par kernel57 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/12/2005, 22h58
  5. Problème concaténation excel/vba
    Par rotterdamt dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 28/11/2005, 17h47

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