Concaténation simplifiée

Le
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) ?
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Caetera
Le #19121271
> 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
rthompson
Le #19121661
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"
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



rthompson
Le #19121651
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" 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"
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







isabelle
Le #19123241
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" 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"

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












isabelle
Le #19123231
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" 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" 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














gmlsteph
Le #19124451
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"



>> 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 -


rthompson
Le #19124861
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" 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" 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
















rthompson
Le #19124851
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



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"



>> 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 -


gmlsteph
Le #19125181
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


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" >

> >> 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 -


rthompson
Le #19126041
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




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


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" >

> >> 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 -


Publicité
Poster une réponse
Anonyme