Concatenation de 3 colonnes

JohnBill

XLDnaute Junior
Salut à tout le forum d'Excel Downloads.
Je voudrais concatener 3 cellules dans une seule (en rajoutant un espace+tiret+espace ( - ) entre chaque mention) sur toutes les lignes d'une feuille (Quelquefois des dizaines de lignes). je sais faire par formule mais la recopie est fastidieuse car une fois concatené, j'utilise le résultat dans une autre feuille puis j'efface les données en attendant une autre utilisation. Donc je recherche la manière de le faire en vba.
Je joint un petit fichier.
Merci d'avance pour les réponses que j'aurais.
 

Fichiers joints

job75

XLDnaute Barbatruc
Bonjour JohnBill, zebanx,
Code:
Sub Concatener()
With ActiveSheet.UsedRange
    .Columns(4) = "=RC[-3]&"" - ""&RC[-2]&"" - ""&RC[-1]"
    .Columns(4) = .Columns(4).Value 'supprime les formules
End With
End Sub
A+
 

JohnBill

XLDnaute Junior
Salut zebanx, salut job75.
Tout d'abord, merci pour votre rapidité à répondre. Vos propositions me conviennent parfaitement (les deux fonctionnent) mais je pense que je vais utiliser la macro car il me suffit de créer un bouton sur la feuille et tout se fait très rapidement (Y compris l'effacement).
 

job75

XLDnaute Barbatruc
Re,

Chez moi la fonction de zebanx renvoie la valeur d'erreur #NOM?

C'est normal : un fichier .xlsx ne peut pas contenir de macro.

A+
 

JohnBill

XLDnaute Junior
Rebonjour au forum et en particulier à job75 qui m'a donné une réponse que j'applique mais après utilisation en fichier réel et sur des colonnes plus importantes, je me suis aperçu que la macro continue à écrire ( - - ) en colonne D, à la suite des données alors qu'il n'y a plus rien en colonnes A, B et C. Y a t-il un remède ?
NB : il ne s'agit pas d'un reliquat de la manipulation précédente car j'efface la feuille entière après concatenation.
 

job75

XLDnaute Barbatruc
Bonsoir JohnBill,
Code:
Sub Concatener()
With ActiveSheet.UsedRange
    .Columns(4) = "=RC[-3]&REPT("" - ""&RC[-2],RC[-2]<>"""")&REPT("" - ""&RC[-2],RC[-2]<>"""")"
    .Columns(4) = .Columns(4).Value 'supprime les formules
End With
End Sub
Pour voir - et comprendre - les formules ne les supprimez pas.

A+
 

JohnBill

XLDnaute Junior
Cela a l'air de fonctionner. Je ferais plusieurs essais demain.
Mais au fait, pourquoi la fonction rept alors que ton premier code ne l'utilisais pas ?
 

job75

XLDnaute Barbatruc
Mais au fait, pourquoi la fonction rept alors que ton premier code ne l'utilisais pas ?
Bah ma première formule était minimaliste et vous permettait de la compléter au besoin, comme je le fais.

Elle suffisait cependant avec votre fichier du post #1.

A+
 
Dernière édition:

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas