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:

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:

Statistiques des forums

Discussions
312 330
Messages
2 087 348
Membres
103 526
dernier inscrit
HEC