Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

concatenation

5 réponses
Avatar
Laurent
Bonsoir,
je cherche une petite routine qui me permettrait de concatener les données
presentes dans toutes les colonnes d'une feuille
(le resultat serait renvoyé sur la premiere colonne ligne par ligne)
=concatener (B1;C1;...;IV1) le but du jeu etant evidemment de ne pas taper
toutes les colonnes
A moins qu'il y ait une limite du nombre de champs "concatenables" ?
Par ailleurs, une cellule peut contenir combien de caracteres maxi (sous
office 2000) ?
Merci d'avance

5 réponses

Avatar
Philippe.R
Bonsoir,

A coller dans le module de la feuille :

Sub concat()
derlig = Range("b65432").End(xlUp).Row
For i = 1 To derlig
For j = 2 To 256
Cells(i, 1).Value = Cells(i, 1).Value & Cells(i, j).Value
Next j
Next i
End Sub

--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Laurent" @FNAC.NET> a écrit dans le message de
news:4985e5c9$0$28672$
Bonsoir,
je cherche une petite routine qui me permettrait de concatener les données
presentes dans toutes les colonnes d'une feuille
(le resultat serait renvoyé sur la premiere colonne ligne par ligne)
=concatener (B1;C1;...;IV1) le but du jeu etant evidemment de ne pas taper
toutes les colonnes
A moins qu'il y ait une limite du nombre de champs "concatenables" ?
Par ailleurs, une cellule peut contenir combien de caracteres maxi (sous
office 2000) ?
Merci d'avance





Avatar
JB
Bonsoir,

Dans un module (Alt+F11 puis Insertion/Module)

Function concat(champ As Range)
Application.Volatile
For Each c In champ
temp = temp & c
Next
concat = temp
End Function

Dans le tableur

=Concat(B1:IV1)


JB
http://boisgontierjacques.free.fr/


On 1 fév, 19:11, "Laurent" @FNAC.NET> wrote:
Bonsoir,
je cherche une petite routine qui me permettrait de concatener les donn ées
presentes dans toutes les colonnes d'une feuille
(le resultat serait renvoyé sur la premiere colonne ligne par ligne)
=concatener (B1;C1;...;IV1) le but du jeu etant evidemment de ne pas ta per
toutes les colonnes
A moins qu'il y ait une limite du nombre de champs "concatenables" ?
Par ailleurs, une cellule peut contenir combien de caracteres maxi (sous
office 2000) ?
Merci d'avance


Avatar
Laurent
Chapeau bas !
merci beaucoup


"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:
eVz$
Bonsoir,

A coller dans le module de la feuille :

Sub concat()
derlig = Range("b65432").End(xlUp).Row
For i = 1 To derlig
For j = 2 To 256
Cells(i, 1).Value = Cells(i, 1).Value & Cells(i, j).Value
Next j
Next i
End Sub

--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Laurent" @FNAC.NET> a écrit dans le message de
news:4985e5c9$0$28672$
Bonsoir,
je cherche une petite routine qui me permettrait de concatener les
données
presentes dans toutes les colonnes d'une feuille
(le resultat serait renvoyé sur la premiere colonne ligne par ligne)
=concatener (B1;C1;...;IV1) le but du jeu etant evidemment de ne pas
taper
toutes les colonnes
A moins qu'il y ait une limite du nombre de champs "concatenables" ?
Par ailleurs, une cellule peut contenir combien de caracteres maxi (sous
office 2000) ?
Merci d'avance








Avatar
Laurent
merci pour cette autre suggestion

"JB" a écrit dans le message de news:

Bonsoir,

Dans un module (Alt+F11 puis Insertion/Module)

Function concat(champ As Range)
Application.Volatile
For Each c In champ
temp = temp & c
Next
concat = temp
End Function

Dans le tableur

=Concat(B1:IV1)


JB
http://boisgontierjacques.free.fr/


On 1 fév, 19:11, "Laurent" @FNAC.NET> wrote:
Bonsoir,
je cherche une petite routine qui me permettrait de concatener les données
presentes dans toutes les colonnes d'une feuille
(le resultat serait renvoyé sur la premiere colonne ligne par ligne)
=concatener (B1;C1;...;IV1) le but du jeu etant evidemment de ne pas taper
toutes les colonnes
A moins qu'il y ait une limite du nombre de champs "concatenables" ?
Par ailleurs, une cellule peut contenir combien de caracteres maxi (sous
office 2000) ?
Merci d'avance


Avatar
Philippe.R
Re,
Voici une petite amélioration en terme de rapidité d'exécution :

Sub concat_2()
'MPFE le 01/02/2009
Application.ScreenUpdating = False
derlig = Range("b65432").End(xlUp).Row
For i = 1 To derlig
dercol = Range("iv" & i).End(xlToLeft).Column
For j = 2 To dercol
Cells(i, 1).Value = Cells(i, 1).Value & Cells(i, j).Value
Next j
Next i
Application.ScreenUpdating = True
End Sub

--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Laurent" @FNAC.NET> a écrit dans le message de
news:4985ed12$0$28673$
Chapeau bas !
merci beaucoup


"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:
eVz$
Bonsoir,

A coller dans le module de la feuille :

Sub concat()
derlig = Range("b65432").End(xlUp).Row
For i = 1 To derlig
For j = 2 To 256
Cells(i, 1).Value = Cells(i, 1).Value & Cells(i, j).Value
Next j
Next i
End Sub

--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Laurent" @FNAC.NET> a écrit dans le message de
news:4985e5c9$0$28672$
Bonsoir,
je cherche une petite routine qui me permettrait de concatener les
données
presentes dans toutes les colonnes d'une feuille
(le resultat serait renvoyé sur la premiere colonne ligne par ligne)
=concatener (B1;C1;...;IV1) le but du jeu etant evidemment de ne pas
taper
toutes les colonnes
A moins qu'il y ait une limite du nombre de champs "concatenables" ?
Par ailleurs, une cellule peut contenir combien de caracteres maxi (sous
office 2000) ?
Merci d'avance