J'ai une tâche répétitive que j'aimerais automatiser au lieu d'utiliser la fonction = concaténer tout le temps. Voici mon code jusqu'à présent:
Cells(2, 5).Value = Cells(2, 1).Value&" - "&Cells(2, 2).Value
Malheureusement, cela entraîne l'erreur "Erreur de compilation: Attendue: fin de l'instruction" qui met en évidence le "-". Comment puis-je prendre en sandwich ce texte "-" entre ces deux valeurs?
@ Josué a fourni une réponse à votre situation. Une autre solution plus large est celle que j'ai déjà utilisée. Voir le fichier UDF copié ici.
Option Explicit
Function ConcatenateRow(rowRange As Range, joinString As String) As String
Dim x As Variant, temp As String
temp = ""
For Each x In rowRange
temp = temp & x & joinString
Next
ConcatenateRow = Left(temp, Len(temp) - Len(joinString))
End Function
Ensuite, dans votre fichier Excel, utilisez simplement cette formule en sélectionnant la plage de cellules à joindre et en lui donnant une chaîne (dans ce cas, "-") à insérer entre elles.
Une suggestion pour qui besoin:
Private Sub CommandButton1_Click()
Dim i As Long
Dim j As Long
Dim x As String
i = 1
j = Range("max").Value
x = Cells(i, 2)
For i = 2 To j
x = x & " - " & Cells(i, 2)
Next i
'MsgBox (x)
Range("d1").Value = x
i = 0
End Sub