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

Concatenation Infinie ?

sandrabordeaux

XLDnaute Nouveau
Bonjour à tous et bon week end pour les chanceux qui ne vont pas tarder à être en RTT.
Aujourd'hui je suis confrontée à un nouveau problème sur excel sur une concatenation "infinie".
je souhaite en effet associer l'intégralité de la première colonne avec l'ensemble des termes de la seconde colonne.
Je m'explique:
Col 1 BEAUREGARD
Col 2 Bar
Col 2 Mairie
Col 2 ...
Je souhaite en colonne 3
BEAUREGARD Bar
BEAUREGARD Mairie

Tout ceci de manière infinie pour avoir toutes les combinaisons possibles associant ces terrmes.
J'ai vu ça dans une formation mais je ne sais plus comment le retrouver, sachant que ma colonne 2 ne comporte pas beaucoup de termes mais que par la suite cela va s'agrandir.
Voici un fichier d'exemple pris avec des communes françaises.

Merci d'avance

Sandra
 

Pièces jointes

  • demo.xlsx
    562.9 KB · Affichages: 82
  • demo.xlsx
    562.9 KB · Affichages: 89
  • demo.xlsx
    562.9 KB · Affichages: 99
Dernière édition:

sandrabordeaux

XLDnaute Nouveau
Re : Concatenation Infinie ?

Merci excfl, mais cela m'oblige à découper l'intégralité de ma première colonne ce qui ne m'arrange pas dans ce cas de figure vu que j'ai 300 cellules en colonnes 1 à associer à une centaine de cellules en colonne 2.
Sandra
 

titiborregan5

XLDnaute Accro
Re : Concatenation Infinie ?

Bonjour Sandra, le forum,

Si j'ai bien compris la demande :

voir fichier joint, en espérant que ça te convienne!

Attention macro très longue... car 36000 communes * 9 activités = 330 000 lignes... toujours si j'ai bien compris la demande! Macro qui bug à 65000 lignes, sûrement du au fichier qui est du 2003 ou qqch comme ça...
à voir!

Tibo
 

Pièces jointes

  • Copie de demo.xlsm
    550.7 KB · Affichages: 907
  • Copie de demo.xlsm
    550.7 KB · Affichages: 896
  • Copie de demo.xlsm
    550.7 KB · Affichages: 695
Dernière édition:

sandrabordeaux

XLDnaute Nouveau
Re : Concatenation Infinie ?

titiborregan5 Un grand merci c'est exactement ce qu'il me fallait !!!
Une grosse bise à vous tous, vous me sauvez la journée ! Je vais de ce pas éditer mon topics pour marquer résolu. ;-)
 

titiborregan5

XLDnaute Accro
Re : [Résolu] Concatenation Infinie ?

ça marche correctement chez toi? chez moi passé la 65000ème ligne il défile en h2...
Ne pas mettre en résolu, ce n'est pas la politique du forum. Cela permet à d'autres de venir et d'apporter des solutions nouvelles si besoin... donc un topic n'est jamais complètement résolu (je viens de l'apprendre aussi )
 

sandrabordeaux

XLDnaute Nouveau
Re : Concatenation Infinie ?

Pour l'instant ça tourne, je ne suis pas encore à la 65 000 ligne, il semble ramer un peu l'ordinateur.
Bizarre ça qu'il bascule en 82, peut être la limite de excel en nombre de lignes ?
j'ai remodifié mon titre de topics pour respecter les règles du forum.
 

titiborregan5

XLDnaute Accro
Re : Concatenation Infinie ?

65000 est l'ancienne limite de lignes (excel 2003 et antérieurs)!!! L'ordi rame et pour cause essaye de mettre application.screenupdating=false au début du code, ça accélèrera un peu... 5-7 minutes pour la macro je crois!
 

Efgé

XLDnaute Barbatruc
Re : Concatenation Infinie ?

Bonjour sandrabordeaux, excfl, titiborregan
Peut être ainsi pour gagner du temps et prévenir le dépassement du nombre de lignes.
VB:
Sub Test()
'Efgé pour sandrabordeaux
'http://www.excel-downloads.com/forum/206244-concatenation-infinie.html#post1290012
Dim i&, Treport As Variant, TCommunes As Variant, TAct As Variant
With Sheets("Feuil1")
    TCommunes = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(3))
    TAct = .Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(3))
    ReDim Treport(1 To UBound(TCommunes, 1) * UBound(TAct, 1), 1 To 1)
    For i = LBound(TCommunes, 1) To UBound(TCommunes, 1)
        For J = LBound(TAct, 1) To UBound(TAct, 1)
            k = k + 1
            Treport(k, 1) = TCommunes(i, 1) & " " & TAct(J, 1)
        Next J
    Next i
    If UBound(Treport, 1) > .Rows.Count Then MsgBox "Le nombre de lignes dépasse le nombre de ligne de la feuille" & vbLf & _
                                                                "Seuls les " & Format(Rows.Count - 1, "#,##0") & " seront prises en compte" & vbLf _
                                                                , 64, "Dépassement du nombre de lignes"
    .Cells(2, 5).Resize(IIf(UBound(Treport, 1) > .Rows.Count - 1, Rows.Count - 1, UBound(Treport, 1))) = Treport
End With
End Sub
J'ai supprimé des lignes de communes pour alléger le fichier....
Cordialement
 

Pièces jointes

  • demo(3).xls
    52 KB · Affichages: 72
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Concatenation Infinie ?

Bonjour à tous

Un essai qui prend chez moi 17 secondes pour environ 29500 lignes
 

Pièces jointes

  • demo.xlsm
    868.2 KB · Affichages: 364
  • demo.xlsm
    868.2 KB · Affichages: 434
  • demo.xlsm
    868.2 KB · Affichages: 458
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…