Concatenation de champs d'une colonne en ignorant les cellules vides

maca14

XLDnaute Nouveau
Bonjour à tous,

Je crois qu'il s'agit de mon premier post bien que j'ai l'habitude de trouver mon bonheur lors de mes pérégrinations sur le forum.

Je souhaiterai concatener dans un seul champ, les cellulles de toutes une colonne en ignorant les celulles vides.
J'ai trouvé une solution mais qui ne me satisfait pas car trop contraignante puisque je peux avoir 200 lignes...

=SI(J10<>"";J10&"
";"")&SI(J11<>"";J11&"
";"")&SI(J12<>"";J12&"
...
...

Je précise que je n'ai aucune notion de programmation ni sur les macros, cependant si une solution existe que par le biais de VB, je la mettrai en oeuvre en suivant vos conseils.

Merci d'avance
 

ROGER2327

XLDnaute Barbatruc
Re : Concatenation de champs d'une colonne en ignorant les cellules vides

Bonjour maca14
Une fonction personnalisée peut effectivement faire l'affaire :
Code:
Function concat$(ParamArray p())
Application.Volatile
Dim oCel As Range, i&
   For i = 0 To UBound(p)
      For Each oCel In p(i).Cells
         concat = concat & oCel.Value
      Next oCel
   Next i
End Function
Voyez des exemples d'utilisation dans le classeur joint.​
ROGER2327
#4004


Vendredi 13 Phalle 137 (Sainte Bitre, ouvreuse et Etalon, couvreur, SQ)
6 Fructidor An CCXVIII
2010-W34-1T21:41:17Z
 

Pièces jointes

  • Temp.xls
    17 KB · Affichages: 120
  • Temp.xls
    17 KB · Affichages: 125
  • Temp.xls
    17 KB · Affichages: 127

maca14

XLDnaute Nouveau
Re : Concatenation de champs d'une colonne en ignorant les cellules vides

Merci beaucoup, ROGER2327

Au début j'ai cru que ça ne fonctionnait pas mais en exploitant l'exemple j'ai vu que ça répondait parfaitement à mes besoins.
Au niveau de la mise en forme je souhaiterai mettre un retour chariot à chaque fin de cellule concaténée.
Le fichier excel ci joint présente dans la colonne C, ce que j'obtiens grâce à votre code, j'aimerai un affichage comme mentionné dans la colonne D, merci d'avance de votre aide.
 

Pièces jointes

  • Temp_2.xlsm
    12.9 KB · Affichages: 147
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Concatenation de champs d'une colonne en ignorant les cellules vides

Re...
(...)
Le fichier excel ci joint présente dans la colonne C, ce que j'obtiens grâce à votre code, j'aimerai un affichage comme mentionné dans la colonne D, merci d'avance de votre aide.
(...)
Comme je l'indique à la fin de tous mes messages, je dispose d'Excel 2003. Je ne peux par conséquent traiter les fichiers de type .xlsm. Désolé.​
ROGER2327
#4007


Samedi 14 Phalle 137 (Bataille de Morsang, ST)
7 Fructidor An CCXVIII
2010-W34-2T15:52:22Z
 

maca14

XLDnaute Nouveau
Re : Concatenation de champs d'une colonne en ignorant les cellules vides

Bonjour Roger,

Désolé je n'ai pas pris le soin de lire attentivement ta signature le signalant.
Je reposte le fichier au format xls.
Merci d'avance de ton aide.
 

Pièces jointes

  • Concat.xls
    27.5 KB · Affichages: 84
  • Concat.xls
    27.5 KB · Affichages: 101
  • Concat.xls
    27.5 KB · Affichages: 96

ROGER2327

XLDnaute Barbatruc
Re : Concatenation de champs d'une colonne en ignorant les cellules vides

Re...
Essayez ceci :
Code:
[COLOR="DarkSlateGray"][B]Function concat$(ParamArray p())
Application.Volatile
Dim oCel As Range, i&
   For i = 0 To UBound(p)
      For Each oCel In p(i).Cells
         If Not IsEmpty(oCel) Then concat = concat & oCel.Value & vbLf
      Next oCel
   Next i
   If concat <> "" Then concat = Left$(concat, Len(concat) - 1)
End Function[/B][/COLOR]
ROGER2327
#4014


Lundi 16 Phalle 137 (Nativité de Vibescu, prophète, SQ)
9 Fructidor An CCXVIII
2010-W34-4T21:44:18Z
 

Discussions similaires

Statistiques des forums

Discussions
312 334
Messages
2 087 384
Membres
103 530
dernier inscrit
dieubrice