Concaténer des cellules avec une fonction

emmanuel75

XLDnaute Junior
Bonjour à tous,

Comme l'indique le titre, la fonction dont je dispose :

Function concat(champ)
temp = ""
For Each c In champ
If Len(c.Value) > 1 Then temp = temp & c.Value
Next c
concat = Left(temp, Len(temp) - 1)

End Function

......est très pratique lorsqu'il s'agit de fusionner des cellules sur un champ quelconque ((A1:G6) par exemple)...mais elle ne fusionne que des cellules dont les valeurs sont simples (texte, chiffres...).

Mon problème est que mes cellules contiennent chacune une même formule :

=SI(ESTERREUR(CNUM(STXT($A1;COLONNE()-2;1)));"";CNUM(STXT($A1;COLONNE()-2;1)))

et j'obtiens une erreur de VALEUR!!!

HELP !

Merci pour tout début de piste!

Emmanuel
 

Minick

XLDnaute Impliqué
Re : Concaténer des cellules avec une fonction

Salut,

Ta formule
Code:
=SI(ESTERREUR(CNUM(STXT($A1;COLONNE()-2;1)));"";CNUM(STXT($A1;COLONNE()-2;1)))
te retourne rien ou 1 chiffre.

Et ta fonction verifie si pour chaque cellule de la plage tu as au moins 2
caracteres
Code:
If Len(c.Value) > 1
donc ca fini toujours par une chaine temp vide
sur laquelle cette instruction plante
Code:
concat = Left(temp, Len(temp) - 1)
D'ou le #VALEUR, qui n'a rien a voir avec le fait d'avoir une formule ou pas dans la cellule.
 
Dernière édition:

JHA

XLDnaute Barbatruc
Re : Concaténer des cellules avec une fonction

Bonjour Emmanuel75, le forum,

Une petite modif à essayer:

Function conca(champ)
temp = ""
For Each c In champ
If Len(c.Value) >= 1 Then temp = temp & c.Value
Next c
conca = temp
End Function

JHA
 

Discussions similaires

Statistiques des forums

Discussions
312 273
Messages
2 086 699
Membres
103 372
dernier inscrit
BibiCh