web-dev-qa-db-fra.com

Comment concaténer les valeurs de cellules et le texte avec Excel VBA?

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?

6
xxxRxxx

@ 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.

3
legendjr

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
2
Truongpx