Excel - LISTE ou CONCATENER
Asked By brimarseille on 02-Feb-12 01:32 PM
Bonjour,
Dans une colonne j'ai des chiffres. Cette colonne est de longueur variable.
Dans une cellule je voudrais lister ces chiffres avec le signe + entre chaque
chiffre, sous la forme
18 + 5 + 14 + 9
Je ne suis pas sure d'avoir bien expliqu? mon probl?me. Si n?cessaire, je joins
un fichier.
Merci pour votre aide.
Jacquouille replied to brimarseille on 02-Feb-12 01:48 PM
Bonsoir
Rien de tel qu'un bon fichier mis en annexe via CJOINT.COM.
Les nombres en question (? l'int?rieur d'une m?me cellule), sont-il compos?s
tous du m?me nombre de chiffres(ex:12 47 92) ?
Quelle est la "chose" qui les s?pare (espace, virgule, tiret) ?
Avez-vous toujours le m?me nombre de nombre ? deux chiffres(12 45 89 ?)
Si oui, on pourrait envisager un format personnalis?, mais il faudrait votre
r?ponse
A+
Jacquouille
QcGdnSuKBrovS7fS4p2dnAA@giganews.com...
Bonjour,
Dans une colonne j'ai des chiffres. Cette colonne est de longueur variable.
Dans une cellule je voudrais lister ces chiffres avec le signe + entre
chaque
chiffre, sous la forme
18 + 5 + 14 + 9
Je ne suis pas sure d'avoir bien expliqu? mon probl?me. Si n?cessaire, je
joins
un fichier.
Merci pour votre aide.
Jacky replied to brimarseille on 02-Feb-12 02:59 PM
Bonsoir,
Les chiffres en colonne A
Resultat en B1
Total en B2
Quelque chose comme ceci.
'---------------
Sub jj()
Dim x As String
For Each c In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
x = x & c & "+"
Next
[b1] = Left(x, Len(x) - 1)
[b2] = "Total: " & Application.Sum(Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row))
End Sub
'-----------------
--
Salutations
JJ
QcGdnSuKBrovS7fS4p2dnAA@giganews.com...
brimarseille replied to Jacquouille on 02-Feb-12 03:00 PM
Jacquouille a ?crit le 02/02/2012 ? 19h48 :
Merci de vous pencher sur mon probl?me.
Voil? le lien de mon fichier
http://cjoint.com/?BBcu369io9y
Je veux juste dans la cellule A7, afficher la liste des nombres contenus dans
la colonne A avec le signe + entre chaque nombre, sachant que la colonne A peut
avoir un nombre de chiffres diff?rents. Une longueur variable. La colonne A peut
contenir de 5 ? 15 chiffres.
Merci encore.
Jacquouille replied to brimarseille on 02-Feb-12 03:22 PM
Re
Mon probl?me ? moi, c'est d'ouvrir votre fichier.....
Mais je vois que mon fr?re jacques a d?j? r?pondu.
cela convient-il?
Jacquouille
YrednbRIYY3ydrfS4p2dnAA@giganews.com...
Jacquouille a ?crit le 02/02/2012 ? 19h48 :
Merci de vous pencher sur mon probl?me.
Voil? le lien de mon fichier
http://cjoint.com/?BBcu369io9y
Je veux juste dans la cellule A7, afficher la liste des nombres contenus
dans
la colonne A avec le signe + entre chaque nombre, sachant que la colonne A
peut
avoir un nombre de chiffres diff?rents. Une longueur variable. La colonne A
peut
contenir de 5 ? 15 chiffres.
Merci encore.
brimarseille replied to Jacquouille on 02-Feb-12 03:48 PM
Jacquouille a ?crit le 02/02/2012 ? 21h22 :
La premi?re r?ponse me parait tr?s compliqu?e, en plus j'ai du mal avec le
VBA.
N'y aurait il pas une formule plus simple ?
Je voudrais juste qu'en A7 apparaisse la liste des chiffres de la colonne A
(colonne qui varie en longueur) avec des signes + entre les chiffres.
J'ai enregistr? un nouveau fichier
http://cjoint.com/?BBcvSuVX76S
Merci encore
Jacky replied to brimarseille on 02-Feb-12 03:57 PM
RE..
En A7
=SI(A1<>"";A1;)&SI(A2<>"";"+"&A2;)&SI(A3<>"";"+"&A3;)&SI(A4<>"";"+"&A4;)&SI(A5<>"";"+"&A5;)
Il faudra compléter à chaque rajout de ligne
--
Salutations
JJ
ucSdnaIT5vA_a7fS4p2dnAA@giganews.com...
Jacky replied to brimarseille on 02-Feb-12 04:06 PM
Et encore plus simple
=A1&"+"&A2&"+"&A3&"+"&A4&"+"&A5
Mais bon.......
--
Salutations
JJ
brimarseille replied to Jacky on 02-Feb-12 04:44 PM
Jacky a ?crit le 02/02/2012 ? 22h06 :
Merci pour vous messages, mais ce que je voulais, c'?tait automatiser la
cellule A7 et qu'elle se remplissse automatiquement en fonction du nbre de
lignes de la colonne.
isabelle replied to brimarseille on 02-Feb-12 04:59 PM
bonjour brimarseille,
pour automatiser la chose, il te faudra t'initier au vba!
c'est vraiment facile et tu auras toujours de l'aide ici.
un lien pour bien d?buter : http://www.excelabo.net/pasapas/vba
voici une fonction perso ? utiliser pour ton probl?me
Function MaFonctionPerso_Concatener(plg As Range) As String
For Each c In plg
t = t & c & "+"
Next
MaFonctionPerso_Concatener = Left(t, Len(t) - 1)
End Function
--
isabelle
Le 2012-02-02 16:44, brimarseille a ?crit :
brimarseille replied to isabelle on 02-Feb-12 05:22 PM
isabelle a ?crit le 02/02/2012 ? 22h59 :
Merci Isabelle, je vais m'y mettre.
Jacky replied to brimarseille on 02-Feb-12 05:28 PM
Regarde si cela convient
http://cjoint.com/?BBcxCDJ9Heo
--
Salutations
JJ
zaCdnUnulYpMnrbSRVn_vwA@giganews.com...
Maude Este replied to isabelle on 02-Feb-12 05:50 PM
Bonsour?
;o)))
une petite variante pour tenir compte de l'affichage(pr?cision d?cimale)
et coh?rence des signes
'-----------------------------------
Option Explicit
Function cumul_Bri(plg As Range) As String
Application.Volatile
Dim c As Range, t As String
For Each c In plg
t = t & IIf(c > 0, "+", "") & c.Text
Next
cumul_Bri = t
End Function
Jacquouille replied to brimarseille on 02-Feb-12 05:52 PM
Bonsoir
En C2, inscrire cette formule
=A1&"+"&DECALER(A$1;LIGNE(A1);0)
En C3, copier la formule puis tirer vers le bas
=C2&"+"&DECALER(A$1;LIGNE(A2);0)
Chez moi, y a bon .....
Jacquouille
G8GdnezQ1ZcHkbbSRVn_vwA@giganews.com...
isabelle a ?crit le 02/02/2012 ? 22h59 :
Merci Isabelle, je vais m'y mettre.
brimarseille replied to Jacquouille on 02-Feb-12 06:45 PM
Jacquouille a ?crit le 02/02/2012 ? 23h52 :
Merci ? vous tous, je devrais m'en sortir maintenant.
Vous ?tes vraiment serviables et comp?tents.
Merciiiiiiiiiiiii
isabelle replied to Maude Este on 02-Feb-12 06:45 PM
salut geedee,
je vois que tu reprends des couleur sur tes joues,
? la bonne heure! tes variantes sont toujours tr?s appr?ci?es
meilleurs voeux de nouvelle ann?e, bisou*
--
isabelle
Le 2012-02-02 17:50, Maude Este a ?crit :
brimarseille replied to brimarseille on 03-Feb-12 06:15 PM
brimarseille a ?crit le 03/02/2012 ? 00h46 :
Bonsoir ? tous, je reviens vers vous :
J?ai essay? plusieurs de vos r?ponses mais j?ai toujours un probl?me :
(http://cjoint.com/?BBeakMak3qZ)
A Isabelle : j?ai rentr? la fonction dans un module, mais cela ne donne rien.
Qu?est ce que je n?ai pas fait ?
A Jacquouille : j?ai essay? de copier tes formules, mais je dois faire une
mauvaise manip, ?a ne marche pas. Cette solution int?gre-t-elle le fait que la
longueur de la colonne A est variable ?
A Jacky : le fichier joint me convient tout ? fait mais quand je veux copier le
code dans mon classeur ?a ne marche pas. Je n?arrive pas non plus ? modifier le
nom de la colonne (pour adapter ? mon fichier) ; En ligne 8, je change par
exemple A1 :A en D2 :D et en ligne 11 le ? A ? en ? D ? et plus rien ne
fonctionne
Merci ? celui ou celle qui pourra m'aider.
isabelle replied to brimarseille on 03-Feb-12 07:08 PM
bonjour brimarseille,
il faut indiquer la plage de cellules
=MaFonctionPerso_Concatener(A1:A6)
--
isabelle
Le 2012-02-03 18:15, brimarseille a ?crit :
isabelle replied to isabelle on 03-Feb-12 07:22 PM
une version am?lior?e tel que sugg?r? par Maude este,
et une fa?on de l'utiliser avec une plage variable
http://cjoint.com/?BBebuFXn8Aq
--
isabelle
Le 2012-02-03 19:08, isabelle a ?crit :
Jacky replied to brimarseille on 03-Feb-12 09:34 PM
Regarde si celui-ci convient
http://cjoint.com/?BBedGaxZWz5
--
Salutations
JJ
)
Maude Este replied to isabelle on 04-Feb-12 05:56 AM
Bonsour?
une version am?lior?e tel que sugg?r? par Maude este,
et une fa?on de l'utiliser avec une plage variable
;o)))
tu n'as pas int?gr? la notion de signe...
t = t & IIf(c > 0, "+", "") & c.Text
brimarseille replied to Maude Este on 04-Feb-12 06:37 AM
Maude Este a ?crit le 04/02/2012 ? 11h56 :
Bonjour, j'ai utilis? la version d'Isabelle
http://cjoint.com/?BBemFExnxnJ
mais comme la plage est variable je mets ma fonction dans la cellule A11 par
exemple et dans la restitution il apparait des +++. Comment modifier le code
pour enlever ces +++
Merci encore.
brimarseille replied to Maude Este on 04-Feb-12 06:42 AM
Maude Este a ?crit le 04/02/2012 ? 11h56 :
Encore petite pr?cision : en fait j'aimerais pouvoir lui dire :
- tu pars de la cellule B4 (si c'est le d?but de la rentr?e des chiffres) et tu
vas jusqu'? la derni?re cellule ou se trouve un chiffre
ou
- tu pars de la cellule B4 (si c'est le d?but de la rentr?e des chiffres) et tu
vas jusqu'? la derni?re cellule non vide
Maude Este replied to brimarseille on 04-Feb-12 06:48 AM
Bonsour?
Bonjour,j'ai utilis? la version d'Isabelle
http://cjoint.com/?BBemFExnxnJ
mais comme la plage est variable je mets ma fonction dans la cellule A11 par
exemple et dans la restitution il apparait des +++. Comment modifier le code
pour enlever ces +++
Function MaFonctionPerso_Concatener(plg As Range) As String
Dim c As Range
Dim t As String
Application.Volatile
For Each c In plg
t = t & IIf(c > 0, "+", "") & c.Text
Next
MaFonctionPerso_Concatener = t
End Function
brimarseille replied to Maude Este on 04-Feb-12 08:08 AM
Maude Este a ?crit le 04/02/2012 ? 12h48 :
Merci beaucoup, c'est exactement ce qu'il me fallait.
Bon Week-end
isabelle replied to Maude Este on 04-Feb-12 08:15 AM
oups, j'avions oubli?, heureusement que tu as fais le repassage ;-)
--
isabelle
Le 2012-02-04 05:56, Maude Este a ?crit :
brimarseille replied to isabelle on 05-Feb-12 06:48 AM
isabelle a ?crit le 04/02/2012 ? 14h15 :
C'est important de savoir que quelqu'un ? la r?ponse ? sa question et prend un
peu de son temps pour nous ?clairer.
Votre aide m'est tr?s pr?cieuse.
Encore Merci et Bravo ? toute votre ?quipe.
h2so4 replied to brimarseille on 02-Feb-12 02:21 PM
Le jeudi 2 f=E9vrier 2012 19:32:18 UTC+1, brimarseille a =E9crit=A0:
bonsoir,
je ne pense que ce soit possible sans passer par VBA
voici une fonction qui fait la concat=E9nation comme tu le souhaites.
fonction =E0 mettre dans un module VBA
et =E0 appeler =E0 partir d'excel comme suit
=3Dplus(A:A) A:A identifiant la colonne A =E0 remplacer suivant le cas
Function plus(x As Range) As String
Dim p As String
p =3D ""
For Each c In x
If c=3D"" Then Exit For
p =3D p & c & " + "
Next
plus =3D Left(p, Len(p) - 3)
End Function
e.
aque
re, je joins