opcion "a mano":
- introduce en una celda una formula con la referencia al rango (p.e.) [B1] =a1:a320
- pulsa: {F2}{F9} y ANTES de pusar enter...
- edita eliminando el signo '=' y las llaves { } al inicio y al final
- pulsa {enter}
- selecciona dos celdas (p.e.) [B1:B2]
- utiliza buscar=>reemplazar y sustituye los caracteres "separadores" de fila por la coma
opcion "por macro" (lo mismo pero con un procedimiento vba):
copia/pega el siguiente procedimiento en un modulo de codigo estandar y lo ejecutas (te llevara de la mano):
Sub Concatena_rango()
Dim sF As String, sC As String, sN As String, Origen As Range, Destino As Range
On Error Resume Next
sF = Application.International(xlRowSeparator)
Set Origen = Application.InputBox("Selecciona el rango a concatenar", "Paso 1 de 3", "", , , , , 8)
If Origen Is Nothing Then MsgBox "Operacion cancelada por el usuario !!!": GoTo Termina
sN = InputBox("indica el separador de cadenas", "Paso 2 de 3", ",")
If sN = "" Then MsgBox "Operacion cancelada por el usuario !!!": GoTo Termina
Set Destino = Application.InputBox("Selecciona la celda donde concatenar", "Paso 3 de 3", ActiveCell.Address, , , , , 8)(1)
If Destino Is Nothing Then MsgBox "Operacion cancelada por el usuario !!!": GoTo Termina
Application.ScreenUpdating = False
Destino.Select
With ActiveCell
.Formula = "=" & Origen.Address: SendKeys "{f2}{f9}^{end}{bs}^{home}{del 2}~": DoEvents
.Replace CStr(sF), CStr(sN), xlPart
End With
Termina:
Set Origen = Nothing: Set Destino = Nothing
End Sub
saludos,
hector.