Ca reviendrait à modifier ce code pour ecrire la colonne dans une autre page
quelqu'un peut m'aider a y voir clair ? suis je dans la bonne direction selon vous pour obtenir à faire ce que je veux faire ?
Option Explicit
Sub concat()
' la lettre de la constante MaColonne est celle de la
' 1ière colonne des deux colonnes à concaténer
Const MaColonne = "E"
Const Separ = " "
Dim vals, i As Long, result
With Sheets("Feuil1")
' on efface les précédents résultats (1ière colonne = MaColonne
' translatée de deux colonnes vers la droite)
.Columns(MaColonne).Offset(, 2).ClearContents
' Nombre de la lignes de la 2ième colonne
i = .Cells(.Rows.Count, MaColonne).Offset(, 1).End(xlUp).Row
' si le nombre de lignes de la 1iere colonne est supérieur à celui
' de la deuxième colonne alors on retient ce dernier nombre de ligne
' i = max des nombres de lignes de la 1ière et 2ième colonne
If i <= .Cells(.Rows.Count, MaColonne).End(xlUp).Row Then _
i = .Cells(.Rows.Count, MaColonne).End(xlUp).Row
' on transfère le tableau des valeurs des colonnes à concaténer
' de la feuille 'Feuil1' dans un tableau en mémoire (vals)
vals = .Columns(MaColonne).Resize(i, 2).Value
' on crée le tableau résultat à la bonne taille
' (= nombre de lignes de vals)
ReDim result(LBound(vals) To UBound(vals))
' boucle sur la tableau vals pour concatener
' chaque ligne de vals dans result
For i = LBound(vals) To UBound(vals)
result(i) = vals(i, 1) & Separ & vals(i, 2)
' si on ne désire pas de séparateur quand au moins une cellule est vide
' mettre en commentaire l'instruction ci-dessus et réactiver
' l'instruction en commentaire ci-dessous.
' result(i) = vals(i, 1) & IIf(vals(i, 1) = "" Or vals(i, 2) = "", "", Separ) & vals(i, 2)
Next i
' on transfère le résultat sur la feuille de calcul
' MaColonne déplacée de 2 colonnes vers la droite et redimensionnée
' au nombre de lignes du tableau resultat
' le "transpose" sert à passer le tableau result d'un tableau en ligne
' à un tableau en colonne
.Columns(MaColonne).Offset(0, 2).Resize(UBound(result) - LBound(result) + 1).Value _
= Application.Transpose(result)
End With
End Sub
[attachment=0]Concat 2 cols v2.xls[/attachment]