Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Concatenation en VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Backhandshot

XLDnaute Occasionnel
Bonjour à tous ! Je n'ai pas trouvé le code qui me permettrait de concaténer par ligne avec une boucle. J'ai 6 cases que je dois concaténer par ligne : exemple 6 cases de 3 chiffres en faisant toutes les colonnes qui donne 1 total de 20 concaténations pour 6 valeurs par ligne. Je joins 1 fichier qui expliquera mieux la situation.
Votre aide serait appréciée. Merci
 

Pièces jointes

Re : Concatenation en VBA

Bonjour,

Essai ce code

Bonjour,

Essai ce code :

Code:
Sub toto()
col = 8
For i = 1 To 6
    For y = i + 1 To 6
        For Z = y + 1 To 6
            Cells(1, col) = Cells(1, i) & ";" & Cells(1, y) & ";" & Cells(1, Z)
            col = col + 1
        Next Z
    Next y
Next i
End Sub

Cordialement
 
Re : Concatenation en VBA

Bonjour,

Désolé mais je ne réussis pas à adapter le code correctement, quand je rajoute une boucle les autres lignes sont décalées de 20,40,60 cases etc...mais la concaténation se fait sur les bonnes lignes mais pas dans les colonnes au dessous de la première.
 
Re : Concatenation en VBA

bonsoir,

voir cette même routine de 'suistrop' avec la boucle Lig rajoutée

Code:
Sub toto()
Lig = 1 'voir départ de la 1'ligne !?
Do: Col = 8
  For I = 1 To 6: For Y = I + 1 To 6: For Z = Y + 1 To 6
    Cells(Lig, Col) = Cells(Lig, I) & ";" & Cells(Lig, Y) & ";" & Cells(Lig, Z): Col = Col + 1
  Next Z: Next Y: Next I
  Lig = Lig + 1
Loop Until Cells(Lig, 1) = ""
End Sub


EDIT: voir ton classeur exemple avec cette macro dans le module !
 

Pièces jointes

Dernière édition:
Re : (RÉSOLU) Concatenation en VBA

Bonjour tous, Suistrop et Roland_M

J'avais réussi à adapter le code juste avant de venir poster que j'avais trouvé avec le code de Suistrop, maintenant il y aura 2 solutions. Merci beaucoup de votre aide. Voici l'autre code que j'avais adapté.

Sub toto()
Col = 8
For fin = 1 To Range("a1048576").End(xlUp).Rows
For I = 1 To 6
For Y = I + 1 To 6
For Z = Y + 1 To 6
Cells(fin, Col) = Cells(fin, I) & ";" & Cells(fin, Y) & ";" & Cells(fin, Z)
Col = Col + 1

Next Z
Next Y
Next I
Col = 8
Next fin
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
465
Réponses
3
Affichages
478
Réponses
22
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…