Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Lier deux valeurs textes

  • Initiateur de la discussion Initiateur de la discussion glaine
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

glaine

Guest
Bonjour à tous,

Merci par avance à tous ceux qui pourraient m'aider.

Le problème : Je voudrais créer un programme qui ressemble à la fonction concatener. Je veux donc lier deux valeurs textes dans une cellule, mais je voudrais pouvoir effacer les cellules où se trouvent les valeurs séparées. J'ai donc pensé à récupérer ces valeurs pour les insérer dans une formule dans la cellule active. Mon problème est qu'elle ne me retourne rien. J'espère ne pas avoir été trop confus. Je sais que le noeud de ma question se trouve dans m3.
Amicalement
Code:
Dim val1, val2 As String
Sub m1()
Selection.Copy
    ActiveCell.Offset(-1, 3).Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues
    val1 = Selection.Value
    Application.CutCopyMode = False
    
End Sub

Sub m2()
Selection.Copy
    ActiveCell.Offset(-1, 3).Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues
    val2 = Selection.Value
    MsgBox (val2)
    Application.CutCopyMode = False

End Sub

Sub m3()
    ActiveCell.Offset(-1, 3).Range("A1").Select
    val1 = ActiveCell.Offset(-1, 3).Range("A1").Value
    ActiveCell.Offset(-1, 3).Range("A1").Select
    val2 = ActiveCell.Offset(-1, 3).Range("A1").Value
    ActiveCell.Offset(0, -1).Range ("A1")
    ActiveCell.FormulaR1C1 = val1 & val2
    End Sub
 
Re : Lier deux valeurs textes

Bonjour Glaine, bonjour le forum,

Je ne comprends pas du tout où tu veux en venir avec ton code... Pourrais-tu, à l'aide d'un fichier exemple, nous montrer ce que tu as avant et ce que tu voudrais après et par quel moyen tu veux l'obtenir ?
 
Re : Lier deux valeurs textes

Bonjour glaine,

Je ne me considère pas comme un spécialiste des macros, mais en lisant ton code je me disais que, soit tu faisais beaucoup de manipulations dont l'utilité ne me saute pas aux yeux, soit la structure de ton fichier (ou autre chose) fait que la manipulation a des raisons d'être "alambiquée".

Je te suggère donc de joindre un petit fichier exemple contenant des données types et une explication détaillée de ce que tu dois réaliser

Salut Robert 🙂
 
Dernière édition:
Re : Lier deux valeurs textes

Bonjour Glaine, Modeste, bonjour le forum,

En pièce jointe ton fichier modifié avec la macro événementielle BeforeDoubleClick. Double-clique dans une cellule de la colonne C...
Le code :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 3 Then Exit Sub ' si le double-clic a lieu ailleurs que dans la colonne 3, sort de la procédure
If Target.Row < 1 Then Exit Sub ' si le double-clic a lieu dans la ligne 1, sort de la procédure
Cancel = True 'annule le mode édition lié au double-clic
Target.Offset(-1, 2).Value = Target.Value & Target.Offset(0, 1).Value
End Sub
Le fichier :
 

Pièces jointes

Re : Lier deux valeurs textes

Re-bonjour,

Je ne sais si j'ai bien compris, mais si tu sélectionnes les deux cellules rouges au départ, ceci devrait suffire:
VB:
Sub concatener()
Selection(1).Offset(-1, 2) = Selection(1) & Selection(2)
End Sub

Les vraies questions sont: est-ce que tu sélectionneras à chaque fois? Y aura-t-il toujours 2 cellules (ni plus, ni moins)? Faudra-t-il chaque fois décaler d'une ligne vers le haut et de 2 colonnes vers la droite? Qu'est-ce qui déclenchera la macro?

Edit: Bon, Robert a pris les devants, une fois de plus 😀
 
Re : Lier deux valeurs textes

Bonjour messieurs,

Merci à vous, la bonne réponse était celle de Robert. Modeste, ta solution prend automatiquement la valeur du dessous et pas celle à droite, j'ai essayé de la réparer sans succès. Je remets la solution de Robert adaptée pour ceux que cela intéresse. Mon problème est résolu. Merci encore.

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 3 Then Exit Sub ' si le double-clic a lieu ailleurs que dans la colonne 3, sort de la procédure
If Target.Row < 1 Then Exit Sub ' si le double-clic a lieu dans la ligne 1, sort de la procédure
Cancel = True 'annule le mode édition lié au double-clic
Target.Offset(-1, 2).Value = Target.Value & Chr(32) & Target.Offset(0, 1).Value
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
399
Réponses
18
Affichages
597
Réponses
10
Affichages
791
Réponses
17
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…