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

Concaténation simplifiée

15 réponses
Avatar
Grandola
Quelqu'un saurait me dire s'il y a moyen de s'éviter la lourde syntaxe
de la fonction CONCATENER(A1;B1;C1;D1;E1;F1;...;...;...;...;..;L1)

en la remplaçant par une formule du genre :
SUPERCONCATENATION(A1:L1) ?

10 réponses

1 2
Avatar
Caetera
> Quelqu'un saurait me dire s'il y a moyen de s'éviter la lourde syntaxe de la
fonction CONCATENER(A1;B1;C1;D1;E1;F1;...;...;...;...;..;L1)
en la remplaçant par une formule du genre :
SUPERCONCATENATION(A1:L1) ?



Une fonction personnalisée : dans un module :

Function SUPERCONCATENATION(plage As Range)
For Each c In plage
x = x & c.Value
Next
SUPERCONCATENATION = x
End Function

Dans la feuille
=SUPERCONCATENATION(A1:L1)

Etc
Avatar
rthompson
Bonsoir

Je plonge dans ce fil avec délectation

Tu viens de proposer un truc que je cherchais à faire depuis un petit bout
de temps

MAIS

Comment faire si les cellules à conco... ne sont pas à la queu leu leu
J'ai essayé =SUPERCONCATENATION(A1;D1;H1) sans succès

Comment faire?


Merci et à bientôt

Rex



"Caetera" <EtiennePloufCahé@wanadoo.fr> a écrit dans le message de news:

Quelqu'un saurait me dire s'il y a moyen de s'éviter la lourde syntaxe de
la fonction CONCATENER(A1;B1;C1;D1;E1;F1;...;...;...;...;..;L1)
en la remplaçant par une formule du genre :
SUPERCONCATENATION(A1:L1) ?



Une fonction personnalisée : dans un module :

Function SUPERCONCATENATION(plage As Range)
For Each c In plage
x = x & c.Value
Next
SUPERCONCATENATION = x
End Function

Dans la feuille
=SUPERCONCATENATION(A1:L1)

Etc



Avatar
rthompson
OUPSSSSSS

Oublié de dire que, bien sûr, concatenate seul le fait
Mais j'aurais voulu qu'en sélectionnant plusieurs cellule éparpillées il
insère automatiquement un espace entre les textes


Merci

A bientôt

Rex




"rthompson" a écrit dans le message de
news:
Bonsoir

Je plonge dans ce fil avec délectation

Tu viens de proposer un truc que je cherchais à faire depuis un petit bout
de temps

MAIS

Comment faire si les cellules à conco... ne sont pas à la queu leu leu
J'ai essayé =SUPERCONCATENATION(A1;D1;H1) sans succès

Comment faire?


Merci et à bientôt

Rex



"Caetera" <EtiennePloufCahé@wanadoo.fr> a écrit dans le message de news:

Quelqu'un saurait me dire s'il y a moyen de s'éviter la lourde syntaxe
de la fonction CONCATENER(A1;B1;C1;D1;E1;F1;...;...;...;...;..;L1)
en la remplaçant par une formule du genre :
SUPERCONCATENATION(A1:L1) ?



Une fonction personnalisée : dans un module :

Function SUPERCONCATENATION(plage As Range)
For Each c In plage
x = x & c.Value
Next
SUPERCONCATENATION = x
End Function

Dans la feuille
=SUPERCONCATENATION(A1:L1)

Etc







Avatar
isabelle
bonjour Rex,

cette fonction accepte entre 1 et 4 groupe de cellule,

Function SuperCONCATENATION(ByVal Plage1 As Range, Optional Plage2 As
Range, _
Optional Plage3 As Range, Optional Plage4 As Range) As String
On Error Resume Next
For Each c In Plage1
x = x & c.Value
Next
For Each c In Plage2
x = x & c.Value
Next
For Each c In Plage3
x = x & c.Value
Next
For Each c In Plage4
x = x & c.Value
Next
SuperCONCATENATION = x
End Function

isabelle

rthompson a écrit :
OUPSSSSSS

Oublié de dire que, bien sûr, concatenate seul le fait
Mais j'aurais voulu qu'en sélectionnant plusieurs cellule éparpillées il
insère automatiquement un espace entre les textes


Merci

A bientôt

Rex




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

Bonsoir

Je plonge dans ce fil avec délectation

Tu viens de proposer un truc que je cherchais à faire depuis un petit bout
de temps

MAIS

Comment faire si les cellules à conco... ne sont pas à la queu leu leu
J'ai essayé =SUPERCONCATENATION(A1;D1;H1) sans succès

Comment faire?


Merci et à bientôt

Rex



"Caetera" <EtiennePloufCahé@wanadoo.fr> a écrit dans le message de news:


Quelqu'un saurait me dire s'il y a moyen de s'éviter la lourde syntaxe
de la fonction CONCATENER(A1;B1;C1;D1;E1;F1;...;...;...;...;..;L1)
en la remplaçant par une formule du genre :
SUPERCONCATENATION(A1:L1) ?



Une fonction personnalisée : dans un module :

Function SUPERCONCATENATION(plage As Range)
For Each c In plage
x = x & c.Value
Next
SUPERCONCATENATION = x
End Function

Dans la feuille
=SUPERCONCATENATION(A1:L1)

Etc












Avatar
isabelle
une autre plus simple :

Function test(ParamArray Plage()) As String
On Error Resume Next
For i = i To 100
For Each c In Plage(i)
test = test & c
Next
Next
End Function

isabelle

isabelle a écrit :
bonjour Rex,

cette fonction accepte entre 1 et 4 groupe de cellule,

Function SuperCONCATENATION(ByVal Plage1 As Range, Optional Plage2 As
Range, _
Optional Plage3 As Range, Optional Plage4 As Range) As String
On Error Resume Next
For Each c In Plage1
x = x & c.Value
Next
For Each c In Plage2
x = x & c.Value
Next
For Each c In Plage3
x = x & c.Value
Next
For Each c In Plage4
x = x & c.Value
Next
SuperCONCATENATION = x
End Function

isabelle

rthompson a écrit :
OUPSSSSSS

Oublié de dire que, bien sûr, concatenate seul le fait
Mais j'aurais voulu qu'en sélectionnant plusieurs cellule éparpillées
il insère automatiquement un espace entre les textes


Merci

A bientôt

Rex




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

Bonsoir

Je plonge dans ce fil avec délectation

Tu viens de proposer un truc que je cherchais à faire depuis un
petit bout de temps

MAIS

Comment faire si les cellules à conco... ne sont pas à la queu leu leu
J'ai essayé =SUPERCONCATENATION(A1;D1;H1) sans succès

Comment faire?


Merci et à bientôt

Rex



"Caetera" <EtiennePloufCahé@wanadoo.fr> a écrit dans le message de
news:

Quelqu'un saurait me dire s'il y a moyen de s'éviter la lourde
syntaxe de la fonction
CONCATENER(A1;B1;C1;D1;E1;F1;...;...;...;...;..;L1)
en la remplaçant par une formule du genre :
SUPERCONCATENATION(A1:L1) ?



Une fonction personnalisée : dans un module :

Function SUPERCONCATENATION(plage As Range)
For Each c In plage
x = x & c.Value
Next
SUPERCONCATENATION = x
End Function

Dans la feuille
=SUPERCONCATENATION(A1:L1)

Etc














Avatar
gmlsteph
Bonjour,
Doubler les parenthèses avant de pointer les plages:

Function SpCt(ByRef maplage As Range) As String
Dim c As Range
Application.Volatile
For Each c In Range(maplage.Address).Cells
SpCt = SpCt & c
Next
End Function

'lSteph

On 15 avr, 19:00, "rthompson"
wrote:
Bonsoir

Je plonge dans ce fil avec délectation

Tu viens de proposer un truc que je cherchais à faire depuis un petit b out
de temps

MAIS

Comment faire si les cellules à conco... ne sont pas à la queu leu le u
J'ai essayé  =SUPERCONCATENATION(A1;D1;H1) sans succès

Comment faire?

Merci et à bientôt

Rex

"Caetera" <EtiennePloufCahé@wanadoo.fr> a écrit dans le message de ne ws:




>> Quelqu'un saurait me dire s'il y a moyen de s'éviter la lourde synta xe de
>> la fonction CONCATENER(A1;B1;C1;D1;E1;F1;...;...;...;...;..;L1)
>> en la remplaçant par une formule du genre :
>> SUPERCONCATENATION(A1:L1) ?

> Une fonction personnalisée : dans un module :

> Function SUPERCONCATENATION(plage As Range)
> For Each c In plage
>      x = x & c.Value
> Next
> SUPERCONCATENATION = x
> End Function

> Dans la feuille
> =SUPERCONCATENATION(A1:L1)

> Etc- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
rthompson
Bonjour et merci


Une petite question supplémentaire
Comment se fait-il que je dois mettre

=PERSONAL.XLS!concaaleatoire(D1;C1;B1)

au lieu de

=concaaleatoire(D1;C1;B1)

C'est pas un drame mais je ne comprends pas pourquoi certaine de mes
fonctions perso
passe sans ce bout en plus et d'autres pas

Ils sont tous mis dans des modules attachés à mon fichier de base


A bientôt et MERCI


Rex



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

une autre plus simple :

Function test(ParamArray Plage()) As String
On Error Resume Next
For i = i To 100
For Each c In Plage(i)
test = test & c
Next
Next
End Function

isabelle

isabelle a écrit :
bonjour Rex,

cette fonction accepte entre 1 et 4 groupe de cellule,

Function SuperCONCATENATION(ByVal Plage1 As Range, Optional Plage2 As
Range, _
Optional Plage3 As Range, Optional Plage4 As Range) As String
On Error Resume Next
For Each c In Plage1
x = x & c.Value
Next
For Each c In Plage2
x = x & c.Value
Next
For Each c In Plage3
x = x & c.Value
Next
For Each c In Plage4
x = x & c.Value
Next
SuperCONCATENATION = x
End Function

isabelle

rthompson a écrit :
OUPSSSSSS

Oublié de dire que, bien sûr, concatenate seul le fait
Mais j'aurais voulu qu'en sélectionnant plusieurs cellule éparpillées il
insère automatiquement un espace entre les textes


Merci

A bientôt

Rex




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

Bonsoir

Je plonge dans ce fil avec délectation

Tu viens de proposer un truc que je cherchais à faire depuis un petit
bout de temps

MAIS

Comment faire si les cellules à conco... ne sont pas à la queu leu leu
J'ai essayé =SUPERCONCATENATION(A1;D1;H1) sans succès

Comment faire?


Merci et à bientôt

Rex



"Caetera" <EtiennePloufCahé@wanadoo.fr> a écrit dans le message de
news:

Quelqu'un saurait me dire s'il y a moyen de s'éviter la lourde
syntaxe de la fonction
CONCATENER(A1;B1;C1;D1;E1;F1;...;...;...;...;..;L1)
en la remplaçant par une formule du genre :
SUPERCONCATENATION(A1:L1) ?



Une fonction personnalisée : dans un module :

Function SUPERCONCATENATION(plage As Range)
For Each c In plage
x = x & c.Value
Next
SUPERCONCATENATION = x
End Function

Dans la feuille
=SUPERCONCATENATION(A1:L1)

Etc
















Avatar
rthompson
Bonjour Steph et merci
Le truc Isabelle fonctionne très bien

Mais le tien me donne erreur "Value"

Que signifie ton bout de code " Application.Volatile" ?


Merci et à bientôt

Rex


a écrit dans le message de news:

Bonjour,
Doubler les parenthèses avant de pointer les plages:

Function SpCt(ByRef maplage As Range) As String
Dim c As Range
Application.Volatile
For Each c In Range(maplage.Address).Cells
SpCt = SpCt & c
Next
End Function

'lSteph

On 15 avr, 19:00, "rthompson"
wrote:
Bonsoir

Je plonge dans ce fil avec délectation

Tu viens de proposer un truc que je cherchais à faire depuis un petit bout
de temps

MAIS

Comment faire si les cellules à conco... ne sont pas à la queu leu leu
J'ai essayé =SUPERCONCATENATION(A1;D1;H1) sans succès

Comment faire?

Merci et à bientôt

Rex

"Caetera" <EtiennePloufCahé@wanadoo.fr> a écrit dans le message de news:




>> Quelqu'un saurait me dire s'il y a moyen de s'éviter la lourde syntaxe
>> de
>> la fonction CONCATENER(A1;B1;C1;D1;E1;F1;...;...;...;...;..;L1)
>> en la remplaçant par une formule du genre :
>> SUPERCONCATENATION(A1:L1) ?

> Une fonction personnalisée : dans un module :

> Function SUPERCONCATENATION(plage As Range)
> For Each c In plage
> x = x & c.Value
> Next
> SUPERCONCATENATION = x
> End Function

> Dans la feuille
> =SUPERCONCATENATION(A1:L1)

> Etc- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
gmlsteph
comme tu as demandé au delà de la proposition d'Isa pour des plages
multiples
Si on respecte la consigne , chez moi ca marche parfaitement.
Tu peux voir:
http://cjoint.com/?esb2Ix3y5L

Que signifie ton bout de code " Application.Volatile"


C'est pour que cela puisse se recalculer si tu change un texte dans la
plage!

Cordialement.

--
lSteph



On 16 avr, 11:18, "rthompson"
wrote:
Bonjour Steph et merci
Le truc Isabelle fonctionne très bien

Mais le tien me donne erreur "Value"

Que signifie ton bout de code  " Application.Volatile" ?

Merci et à bientôt

Rex

a écrit dans le message de news:

Bonjour,
Doubler les parenthèses avant de pointer les plages:

Function SpCt(ByRef maplage As Range) As String
Dim c As Range
Application.Volatile
For Each c In Range(maplage.Address).Cells
SpCt = SpCt & c
Next
End Function

'lSteph

On 15 avr, 19:00, "rthompson"
wrote:



> Bonsoir

> Je plonge dans ce fil avec délectation

> Tu viens de proposer un truc que je cherchais à faire depuis un petit bout
> de temps

> MAIS

> Comment faire si les cellules à conco... ne sont pas à la queu leu leu
> J'ai essayé =SUPERCONCATENATION(A1;D1;H1) sans succès

> Comment faire?

> Merci et à bientôt

> Rex

> "Caetera" <EtiennePloufCahé@wanadoo.fr> a écrit dans le message de news:
>

> >> Quelqu'un saurait me dire s'il y a moyen de s'éviter la lourde syn taxe
> >> de
> >> la fonction CONCATENER(A1;B1;C1;D1;E1;F1;...;...;...;...;..;L1)
> >> en la remplaçant par une formule du genre :
> >> SUPERCONCATENATION(A1:L1) ?

> > Une fonction personnalisée : dans un module :

> > Function SUPERCONCATENATION(plage As Range)
> > For Each c In plage
> > x = x & c.Value
> > Next
> > SUPERCONCATENATION = x
> > End Function

> > Dans la feuille
> > =SUPERCONCATENATION(A1:L1)

> > Etc- Masquer le texte des messages précédents -

> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
rthompson
Oui

Chez toi cela marche

Sur ton fichier chez moi cela marche

Et dans mon fichier il me met "Value"

C'est gentil à toi et j'essaierai de comprendre plus tard

Mais pour le moment j'ai un truc qui me tombe dessus qu'est pas simple
D'ailleurs dans les prochaines heures et jours
je ferais certainement appels aux services du groupe

Je te tiens au courant

MERCI

et à bientôt

Rex



a écrit dans le message de news:

comme tu as demandé au delà de la proposition d'Isa pour des plages
multiples
Si on respecte la consigne , chez moi ca marche parfaitement.
Tu peux voir:
http://cjoint.com/?esb2Ix3y5L

Que signifie ton bout de code " Application.Volatile"


C'est pour que cela puisse se recalculer si tu change un texte dans la
plage!

Cordialement.

--
lSteph



On 16 avr, 11:18, "rthompson"
wrote:
Bonjour Steph et merci
Le truc Isabelle fonctionne très bien

Mais le tien me donne erreur "Value"

Que signifie ton bout de code " Application.Volatile" ?

Merci et à bientôt

Rex

a écrit dans le message de news:

Bonjour,
Doubler les parenthèses avant de pointer les plages:

Function SpCt(ByRef maplage As Range) As String
Dim c As Range
Application.Volatile
For Each c In Range(maplage.Address).Cells
SpCt = SpCt & c
Next
End Function

'lSteph

On 15 avr, 19:00, "rthompson"
wrote:



> Bonsoir

> Je plonge dans ce fil avec délectation

> Tu viens de proposer un truc que je cherchais à faire depuis un petit
> bout
> de temps

> MAIS

> Comment faire si les cellules à conco... ne sont pas à la queu leu leu
> J'ai essayé =SUPERCONCATENATION(A1;D1;H1) sans succès

> Comment faire?

> Merci et à bientôt

> Rex

> "Caetera" <EtiennePloufCahé@wanadoo.fr> a écrit dans le message de news:
>

> >> Quelqu'un saurait me dire s'il y a moyen de s'éviter la lourde
> >> syntaxe
> >> de
> >> la fonction CONCATENER(A1;B1;C1;D1;E1;F1;...;...;...;...;..;L1)
> >> en la remplaçant par une formule du genre :
> >> SUPERCONCATENATION(A1:L1) ?

> > Une fonction personnalisée : dans un module :

> > Function SUPERCONCATENATION(plage As Range)
> > For Each c In plage
> > x = x & c.Value
> > Next
> > SUPERCONCATENATION = x
> > End Function

> > Dans la feuille
> > =SUPERCONCATENATION(A1:L1)

> > Etc- Masquer le texte des messages précédents -

> - Afficher le texte des messages précédents -- Masquer le texte des
> messages précédents -

- Afficher le texte des messages précédents -


1 2