Concatenar nombres

Buenos tardes me pregunatria si por favor me ayudaras con esta inquietud
tengo una macro que me concatena los datos que se encuentran en la colummna B, C, DE, E celdas y me arroja el resultado en la "f"; lo que quiero es que el resultado me concatene con los espacios neceserios ejemplo
como me concatena:
Diego felipe bedoya castañeda
Como me debería:
Diego felipe bedoya castañeda
Este es el código commo puedo adaptarlo
Gracias
Sub Concatenar1()
Dim Incremento_Fila As Integer
   Dim destino As String
   Dim cadena As String
   Set rango = Worksheets("Mana_Infantil")
   Range("F1").Select
   Selection.EntireColumn.Insert
   Set rango = Worksheets("Mana_Infantil")
   Range("B1").Select
   Incremento_Fila = 0
   Continuar = True
   Do While Continuar
        If Not IsEmpty(ActiveCell.Offset(Incremento_Fila, 0)) Then
            cadena = ActiveCell.Offset(Incremento_Fila, 0).Value & " " & ActiveCell.Offset(Incremento_Fila, 1).Value & " " & ActiveCell.Offset(Incremento_Fila, 2).Value & " " & ActiveCell.Offset(Incremento_Fila, 3).Value
            destino = "F" & Incremento_Fila + 1
            Set rango = Worksheets("Mana_Infantil")
            Range(destino) = cadena
            Incremento_Fila = Incremento_Fila + 1
        Else
            Continuar = False
        End If
   Loop
    Columns("F:F").ColumnWidth = 49.57
End Sub

2 respuestas

Respuesta
1
Como estás, mira usa tu macro de la siguiente manera:
Sub Concatenar1()
Dim Incremento_Fila As Integer
   Dim destino As String
   Dim cadena As String
   Set rango = Worksheets("Mana_Infantil")
   Range("F1").Select
   Selection.EntireColumn.Insert
   Set rango = Worksheets("Mana_Infantil")
   Range("B1").Select
   Incremento_Fila = 0
   Continuar = True
   Do While Continuar
        If Not IsEmpty(ActiveCell.Offset(Incremento_Fila, 0)) Then
        cadena = Replace(ActiveCell.Offset(Incremento_Fila, 0).Value, " ", "")
            cadena = Replace(ActiveCell.Offset(Incremento_Fila, 0).Value, " ", "") & _
            " " & Replace(ActiveCell.Offset(Incremento_Fila, 1).Value, " ", "") & _
            " " & Replace(ActiveCell.Offset(Incremento_Fila, 2).Value, " ", "") & _
            " " & Replace(ActiveCell.Offset(Incremento_Fila, 3).Value, " ", "")
            destino = "F" & Incremento_Fila + 1
            Set rango = Worksheets("Mana_Infantil")
            Range(destino) = cadena
            Incremento_Fila = Incremento_Fila + 1
        Else
            Continuar = False
        End If
   Loop
    Columns("F:F").ColumnWidth = 49.57
End Sub
Cualquier inquietud o duda me avisas.
Respuesta
1
Prueba con la función Trim que quita los espacios al final de los textos
Sub Concatenar1()
Dim Incremento_Fila As Integer
   Dim destino As String
   Dim cadena As String
   Set rango = Worksheets("Mana_Infantil")
   Range("F1").Select
   Selection.EntireColumn.Insert
   Set rango = Worksheets("Mana_Infantil")
   Range("B1").Select
   Incremento_Fila = 0
   Continuar = True
   Do While Continuar
        If Not IsEmpty(ActiveCell.Offset(Incremento_Fila, 0)) Then
            cadena = Trim(ActiveCell.Offset(Incremento_Fila, 0).Value) & " " & Trim(ActiveCell.Offset(Incremento_Fila, 1).Value) & " " & Trim(ActiveCell.Offset(Incremento_Fila, 2).Value) & " " & trim(ActiveCell.Offset(Incremento_Fila, 3).Value)
            destino = "F" & Incremento_Fila + 1
            Set rango = Worksheets("Mana_Infantil")
            Range(destino) = cadena
            Incremento_Fila = Incremento_Fila + 1
        Else
            Continuar = False
        End If
   Loop
    Columns("F:F").ColumnWidth = 49.57
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas