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 :

Problème de concatenation [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut Problème de concatenation
    Bonjour à tous.

    j'ai un EXCEL ou je souhaiterais concatener des cellules. mais je n'y arrive pas... Dans la colonne 1 j'ai une référence et dans la colonne j'ai plusieurs produits pour chaque référence... j'aimerais tout simplement avoir pour chaque référence une seul cellule avec tous les produits (avec un retour a la ligne entre chaque produit)

    Manuellement ca marche très bien mais avec 10000 ca risque d'être compliqué

    En pièce jointe un EXCEL avec deux tableaux
    - celui du haut c'est ce que j'ai actuellement
    - celui du bas ce que j'aimerais avoir...

    Merci d'avance à mes futurs sauveurs
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Une solution possible avec ce code :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    Option Explicit
     
    Sub Concatenation()
     
    Dim CtrI As Long
    Dim NbLignesACote As Long
    Dim DerniereLigneTableau1 As Long
    Dim LigneEnCoursFeuille2 As Long
     
    Dim ContenuLignes As String
    Dim CelluleDACote As Range
    Dim AireDACote As Range
    Dim AireColonne1 As Range
    Dim CelluleColonne1 As Range
     
    Dim ShSource As Worksheet
    Dim ShCible As Worksheet
     
      Set ShSource = Sheets("Feuil1")
      Set ShCible = Sheets("Feuil2")
      ShCible.Cells.Clear
     
      DerniereLigneTableau1 = ShSource.Cells(ShSource.Rows.Count, 1).End(xlUp).Row
     
      Set AireColonne1 = Range(ShSource.Cells(2, 1), ShSource.Cells(DerniereLigneTableau1, 1))
     
      LigneEnCoursFeuille2 = 2
      For Each CelluleColonne1 In AireColonne1
          If CelluleColonne1 <> "" Then
            ContenuLignes = ""
            NbLignesACote = CelluleColonne1.Offset(1, 0).Row - CelluleColonne1.Row
            CtrI = 0
            Set AireDACote = Range(ShSource.Cells(CelluleColonne1.Row, 2), ShSource.Cells(CelluleColonne1.Row + NbLignesACote - 1, 2))
            For Each CelluleDACote In AireDACote
             CtrI = CtrI + 1
             If CtrI < NbLignesACote Then
              ContenuLignes = ContenuLignes & CelluleDACote & Chr(10)
             Else
              ContenuLignes = ContenuLignes & CelluleDACote
             End If
     
            Next CelluleDACote
            Set AireDACote = Nothing
            ShCible.Cells(LigneEnCoursFeuille2, 1) = CelluleColonne1
            ShCible.Cells(LigneEnCoursFeuille2, 2) = ContenuLignes
            LigneEnCoursFeuille2 = LigneEnCoursFeuille2 + 1
         End If
     
      Next CelluleColonne1
     
      With ShCible.Cells
            .HorizontalAlignment = xlGeneral
            .VerticalAlignment = xlTop
            .EntireColumn.AutoFit
            .WrapText = True
      End With
      ShCible.Cells.Columns(1).HorizontalAlignment = xlCenter
      ShCible.Cells.Columns(2).HorizontalAlignment = xlLeft
     
      RetablirLesBorduresFeuille2 ShCible
     
      Set AireColonne1 = Nothing
      Set ShSource = Nothing
      Set ShCible = Nothing
     
    End Sub
     
     
    Sub RetablirLesBorduresFeuille2(FeuilleCible As Worksheet)
     
    Dim PremiereLigne As Long
    Dim NbLignes As Long
    Dim TypeDeTrait As Long
    Dim AireBordure As Range
     
            TypeDeTrait = 2  ' Trait très fin : xlHairline 1, moyen : xlMedium -4138, épais : xlThick 4 , fin : xlThin 2
            PremiereLigne = 2
            NbLignes = FeuilleCible.Cells(FeuilleCible.Rows.Count, 1).End(xlUp).Row
     
            Set AireBordure = Range(FeuilleCible.Cells(2, 1), FeuilleCible.Cells(NbLignes, 2))
     
            With AireBordure
                         .Borders(xlEdgeTop).Weight = TypeDeTrait
                         .Borders(xlEdgeBottom).Weight = TypeDeTrait
                         .Borders(xlEdgeLeft).Weight = TypeDeTrait
                         .Borders(xlEdgeRight).Weight = TypeDeTrait
                         .Borders(xlInsideVertical).Weight = TypeDeTrait
                         .Borders(xlInsideHorizontal).Weight = TypeDeTrait
           End With
     
           Set AireBordure = Nothing
     
    End Sub
    Pour le fonctionnement, on doit définir la feuille source et la feuille cible ainsi que la ligne de début de la feuille source.

    La deuxième macro reconstitue les bordures.

    Cordialement.

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

Discussions similaires

  1. [WORD] Problème pour concatener 2 fichiers .doc
    Par marco000 dans le forum VBA Word
    Réponses: 14
    Dernier message: 27/08/2006, 17h49
  2. Problème de concatenation (.)
    Par SkyDev dans le forum Langage
    Réponses: 3
    Dernier message: 02/08/2006, 13h05
  3. Problème de concatenation...
    Par Colbix dans le forum MFC
    Réponses: 2
    Dernier message: 17/06/2006, 00h18
  4. problème avec concatenation
    Par siham_06 dans le forum Langage
    Réponses: 3
    Dernier message: 04/12/2005, 04h25
  5. [FLASH MX] Problème de concatenation
    Par warl dans le forum Flash
    Réponses: 2
    Dernier message: 03/03/2005, 12h56

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