Concatener et faire du copier/coller avec le résultat

Bonjour le forum,

Je me permets de vous sollicitez à nouveau, car j'aurais besoin d'aide

Je reçois régulièrement un fichier de différente personne avec, par exemple le nom et prénom dans deux colonnes différentes.

Je voudrais après avoir concatener les deux colonnes pouvoir copier le résultat afin de pouvoir le réutiliser.

Ci-joint un fichier avec deux formules pour concatener, mais est-il possible à une de ces formules de lui dire de concatener dans une autre cellule ?

Cette formule ce trouve en C3 "=CONCATENER(A3;" ";B3)" et le résultat en D3 ?

Merci d'avance de votre aide

Meilleures salutations

163classeur1.xlsx (12.38 Ko)

Salut,

Je ne comprends pas ton problème. Pourquoi ne pas réutiliser directement la colonne C?

Cldt,

Uras

Salut Uras,

Merci de ton message et de ton aide

Justement c'est ce que je voudrais

Mais faire du copier/coller de la colonne C cela me copie la formule et non le résultat.

Je ne veux pas "=CONCATENER(A3;" ";B3)" quand je colle, mais "René Dupont"

Je voudrais le résultat comme dans la colonne D (que j'ai fais manuellement)

Merci d'avance

Meilleures salutations

Bonjour,

Une proposition à tester dans le fichier joint:

250nini007.xlsm (17.20 Ko)
Option Explicit
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

    If Not Application.Intersect(Target, Range("C:C")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        Cancel = True
        With Target
            If .Value = "" Then
                .Value = Target.Offset(0, -2) & " " & Target.Offset(0, -1)
            Else
                .Value = Empty
            End If
        End With
    End If

End Sub

Re,

Sans macro je ne vois pas vraiment comment faire.

Sinon je te redonne ton fichier avec une macro pour automatiser ton procédé.

Après tu peux simplement réutiliser la colonne C en spécifiant le type de donnée que tu veux :

Range("C3") te donnera le contenu de la cellule C3 : "=CONCATENER(A3;" ";B3)"

Range("C3").Value te donnera la valeur contenue dans la cellule C3 : "René Dupond"

En espérant t'avoir aider

Je n'ai pas expliqué la macro, si tu veux plus de détails, demande moi.

Cldt,

Uras

264classeur1.xlsm (19.68 Ko)

Bonjour Jean-Eric,

Merci pour votre aide

Ce VBA me va tout à fait, il fait bien ce que je désire.

Mais une petite question, comme je maitrise mieux les formules et novice en VBA.

Si je devais rajouter une colonne à concatener, par exemple la colonne A, B, C et le résultat en colonne D.

Comment dois-je modifier le code ?

Quelles données corresponds à la colonne A et à la colonne B ?

Merci d’avance

Meilleures salutations

Bonjour

Faire un copier, puis collage spécial valeur et tu ne récupères que le résultat

ou bouton copier, clic droit sur cellule destination et cliquer sur le bouton contenant 123

Cordialement

FINDRH

Re,

Ci-joint modification qui donne la concanétation des colonnes ABC en D avec formule ald des valeurs:

129nini007-v1.xlsm (16.64 Ko)
Option Explicit
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

    If Not Application.Intersect(Target, Range("D:D")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        Cancel = True
        With Target
            If .Value = "" Then
                '.Value = Target.Offset(0, -3) & " " & Target.Offset(0, -2) & " " & Target.Offset(0, -1)
               .FormulaR1C1 = "=RC[-3]&"" ""&RC[-2]&"" ""&RC[-1]"
            Else
                .Value = Empty
            End If
        End With
    End If

End Sub

Re Jean-Eric,

Merci pour ton message.

En comparent les deux code(Ci-dessous) dans les deux fichier que tu m'as envoyé

If .Value = "" Then

.Value = Target.Offset(0, -2) & " " & Target.Offset(0, -1)

If .Value = "" Then

.Value = Target.Offset(0, -3) & " " & Target.Offset(0, -2) & " " & Target.Offset(0, -1)

Si je comprend bien, si je veux rajouter une colonne, cela va être comme ci-dessous, et ainsi de suite ?

If .Value = "" Then

.Value = Target.Offset(0, -4) & " " & Target.Offset(0, -3) & " " & Target.Offset(0, -2)& " " & Target.Offset(0, -1)

Cela dépend-il aussi de l'emplacement des colonnes ?

Bien évidement en changeant en conséquence la lettre de: "Range("D:D"))"

Merci d'avance

Meilleures salutations

Re Uras,

Merci pour ton message et ton fichier.

La macro fonctionne très bien.

Je voudrais volontier une explication à ton code et sur le faite de rajouter une colonne quel sont les modifications à apporter à ton code ?

Merci d'avance

Meilleures salutations

Re,

Tu fais les questions et les réponses

C'est OK, tu as compris.

Cdlt.

Bonsoir a tous,

MErci pour l'info, ce sujet est intéressant

Sans macro, tu peux faire un copier coller. Tu sélectionnes ta colonne C "copier". tu te mets sur la colonne D et tu fais collage spécial - valeurs. Comme ça tu copies le résultat et non la formule.

Bon courage

Salut nini007,

Je te mets mon code avec les commentaires :

Sub CopierCollerValeur()

Dim x As Integer
x = 0

Do      'Boucle While pour executer les instructions de toute la colonne (voir condition de sortie à la fin)
    Range("C3").Offset(x, 0).Copy   'Copie de la Cellule C(3+x)
    Range("D3").Offset(x, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'Collage spécial : Valeur uniquement dans la cellule D(3+x)
    x = x + 1 ' on incrémente x pour passer à la ligne suivante
Loop While Not IsEmpty(Range("A3").Offset(x, 0)) 'Boucle tant que la cellule de colonne A et de ligne 3 + x n'est pas vide
Application.CutCopyMode = False 'Enlève le cadre en surbrillance autour de la plage copiée

End Sub

Je t'en mets le même avec une autre condition de sortie :

Sub CopierCollerValeur2()

Dim x As Integer
x = 0

Do      'Boucle While pour executer les instructions de toute la colonne (voir condition de sortie à la fin)
    Range("C3").Offset(x, 0).Copy   'Copie de la Cellule C(3+x)
    Range("D3").Offset(x, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'Collage spécial : Valeur uniquement dans la cellule D(3+x)
    x = x + 1 ' on incrémente x pour passer à la ligne suivante
Loop While Range("A3").Offset(x - 1, 0).Address <> Range("A3").End(xlDown).Address
'Boucle tant que la cellule A(3+x-1) est différente de la cellule de fin de colonne A
Application.CutCopyMode = False 'Enlève le cadre en surbrillance autour de la plage copiée

End Sub

Enfin, pour répondre à ta question, la macro que je t'ai faite sert juste à faire un "copier" "coller spécial > valeur" de la colonne C vers la colonne D, ce que tu demandais au début. Si toutefois tu t'obstines à vouloir utiliser cette macro, il te suffit de changer C en D et D en E, ou incrémenter Offset(nb saut de lignes, nb saut de colonne) comme tu le souhaites (ddans ton cas +1 pour le saut de colonne) et biensur changer la formule de ta feuille pour rajouter C.

Maintenant, je pense que tu devrais utiliser ce qu'à proposer Jean-Eric car je n'ai fait que répondre à ta question initiale avec cette macro. Je pense toujours que dans ton cas ce copier coller est inutile, tu peux utiliser directement le résultat de formule avec .Value en VBA.

Cordialement,

Uras

Salut Uras,

Je te remercie pour tes messages, explications et ton aide

Effectivement les deux codes, le tiens et celui de Jean-Eric, fonctionnes très bien

Comme tu m’avais gentiment proposé de me donner plus de détails au sujet de ton code, j’en ai profité afin de clore le sujet et d’avoir les réponses à toutes les questions concernant ce sujet.

J’utiliserais le code que je comprendrais le mieux

Je vous remercie à vous deux, Uras et Jean-Eric pour votre aide

Merci pour tout

Meilleures salutations

Bonjour

J'ai utilser en parti le code e trouvant sur ce sujet.

Malheureusement j'ai un autre probleme.

Le but et de pouvoir separer le numero de plan de l'intitulé,(ex: celulle G6 et H6),

Les fleche servent a augmenter ou diminuer le nombre de caractere avant et apres. voir onglet test apres avoir cliquer sur une fleche,

Le bouton copiercoller sert a enlever les point ( . ) dans colonne PUHT et TOTAL,et enlever les point exclamation dans colonne Plan et copier la formule en "feuille test" cellule E1 et E2'formule qui change quand on clique sur les 2 ptite fleche) et la coller dans traitement en " G6 et H6" pour les incrementer jusque'enG6:H74.

Voir dans le fichier joint.

Merci

29classeur2.xlsm (73.78 Ko)
Rechercher des sujets similaires à "concatener copier coller resultat"