OVH Cloud OVH Cloud

Concatener en VBA

5 réponses
Avatar
ManBas
Bonjour les amis du web,
Mon problème aujourd'hui est de concaténer les cellules de a1 à la dernière
cellule non vide, grace à une macro.
Est-ce possible?
L'éditeur de macro ne m'as pas aidé, et je n'ai pas trouvé dans excelabo.
Merci d'avance.

5 réponses

Avatar
Pierre Fauconnier
Bonjour

For Each Cellule In Range("a1:a" & Range("a65536").End(xlUp).Row)
Chaine = Chaine & Cellule.Value
Next Cellule

Ou alors dans une fonction, utilisable comme suit

Function Plage_Concatenee(Plage As Range) As String
Dim Chaine As String
Dim Cellule As Range

For Each Cellule In Plage
Chaine = Chaine & Cellule.Value
Next Cellule
Plage_Concatenee = Chaine
End Function

On utilise la fonction en passant la plage désirée comme paramètre

Sub Test()
MsgBox Plage_Concatenee(Range("a1:a" & Range("a65536").End(xlUp).Row))
End Sub

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

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

Bonjour les amis du web,
Mon problème aujourd'hui est de concaténer les cellules de a1 à la
dernière cellule non vide, grace à une macro.
Est-ce possible?
L'éditeur de macro ne m'as pas aidé, et je n'ai pas trouvé dans excelabo.
Merci d'avance.



Avatar
ManBas
Bonsoir Pierre,
D'abord merci beaucoup pour ta réponse.
Mais je ne parviens pas à compléter la macro (la première est la plus simple
pour moi).
J'ai compléter la fonction avec:
Function Plage_Concatenee(Plage As Range) As String
Dim Chaine As String
Dim Cellule As Range
For Each Cellule In Plage
Chaine = Chaine & Cellule.Value
Next Cellule
Plage_Concatenee = Chaine
Range("b1").Value = Plage_Concatenee
End Function
Sub Test()
MsgBox Plage_Concatenee(Range("a1:a" & Range("a65536").End(xlUp).Row))
End Sub
ça fonctionne bien mais ce msgbox me gêne.

Excuses-moi, pourrais-tu détailler un peu plus la macro STP?


"Pierre Fauconnier" a écrit dans le
message de news:
Bonjour

For Each Cellule In Range("a1:a" & Range("a65536").End(xlUp).Row)
Chaine = Chaine & Cellule.Value
Next Cellule

Ou alors dans une fonction, utilisable comme suit

Function Plage_Concatenee(Plage As Range) As String
Dim Chaine As String
Dim Cellule As Range

For Each Cellule In Plage
Chaine = Chaine & Cellule.Value
Next Cellule
Plage_Concatenee = Chaine
End Function

On utilise la fonction en passant la plage désirée comme paramètre

Sub Test()
MsgBox Plage_Concatenee(Range("a1:a" & Range("a65536").End(xlUp).Row))
End Sub

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

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

Bonjour les amis du web,
Mon problème aujourd'hui est de concaténer les cellules de a1 à la
dernière cellule non vide, grace à une macro.
Est-ce possible?
L'éditeur de macro ne m'as pas aidé, et je n'ai pas trouvé dans excelabo.
Merci d'avance.







Avatar
ManBas
ça y est j'ai obtenu ce qu'il me fallait en complétant le code.
Merci Pierre.

"Pierre Fauconnier" a écrit dans le
message de news:
Bonjour

For Each Cellule In Range("a1:a" & Range("a65536").End(xlUp).Row)
Chaine = Chaine & Cellule.Value
Next Cellule

Ou alors dans une fonction, utilisable comme suit

Function Plage_Concatenee(Plage As Range) As String
Dim Chaine As String
Dim Cellule As Range

For Each Cellule In Plage
Chaine = Chaine & Cellule.Value
Next Cellule
Plage_Concatenee = Chaine
End Function

On utilise la fonction en passant la plage désirée comme paramètre

Sub Test()
MsgBox Plage_Concatenee(Range("a1:a" & Range("a65536").End(xlUp).Row))
End Sub

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

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

Bonjour les amis du web,
Mon problème aujourd'hui est de concaténer les cellules de a1 à la
dernière cellule non vide, grace à une macro.
Est-ce possible?
L'éditeur de macro ne m'as pas aidé, et je n'ai pas trouvé dans excelabo.
Merci d'avance.







Avatar
Pierre Fauconnier
Bienheureux sois-tu... ;-)

Bon dimanche

Pierre

"ManBas" a écrit dans le message de news:
%
ça y est j'ai obtenu ce qu'il me fallait en complétant le code.
Merci Pierre.

"Pierre Fauconnier" a écrit dans le
message de news:
Bonjour

For Each Cellule In Range("a1:a" & Range("a65536").End(xlUp).Row)
Chaine = Chaine & Cellule.Value
Next Cellule

Ou alors dans une fonction, utilisable comme suit

Function Plage_Concatenee(Plage As Range) As String
Dim Chaine As String
Dim Cellule As Range

For Each Cellule In Plage
Chaine = Chaine & Cellule.Value
Next Cellule
Plage_Concatenee = Chaine
End Function

On utilise la fonction en passant la plage désirée comme paramètre

Sub Test()
MsgBox Plage_Concatenee(Range("a1:a" & Range("a65536").End(xlUp).Row))
End Sub

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

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

Bonjour les amis du web,
Mon problème aujourd'hui est de concaténer les cellules de a1 à la
dernière cellule non vide, grace à une macro.
Est-ce possible?
L'éditeur de macro ne m'as pas aidé, et je n'ai pas trouvé dans
excelabo.
Merci d'avance.











Avatar
jps
alleluia
jps

"Pierre Fauconnier" a écrit dans le
message de news:
Bienheureux sois-tu... ;-)

Bon dimanche

Pierre

"ManBas" a écrit dans le message de news:
%
ça y est j'ai obtenu ce qu'il me fallait en complétant le code.
Merci Pierre.

"Pierre Fauconnier" a écrit dans le
message de news:
Bonjour

For Each Cellule In Range("a1:a" & Range("a65536").End(xlUp).Row)
Chaine = Chaine & Cellule.Value
Next Cellule

Ou alors dans une fonction, utilisable comme suit

Function Plage_Concatenee(Plage As Range) As String
Dim Chaine As String
Dim Cellule As Range

For Each Cellule In Plage
Chaine = Chaine & Cellule.Value
Next Cellule
Plage_Concatenee = Chaine
End Function

On utilise la fonction en passant la plage désirée comme paramètre

Sub Test()
MsgBox Plage_Concatenee(Range("a1:a" &
Range("a65536").End(xlUp).Row))
End Sub

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

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

Bonjour les amis du web,
Mon problème aujourd'hui est de concaténer les cellules de a1 à la
dernière cellule non vide, grace à une macro.
Est-ce possible?
L'éditeur de macro ne m'as pas aidé, et je n'ai pas trouvé dans
excelabo.
Merci d'avance.