Sub rngDelimitador()
'@dj.vivanco
'ver 1.0.0 24-07-2020
Dim rng As Range, celda As Range, uf As Long, col As Integer
Dim rngFila As Variant, datosFila As Variant
Dim nomArchivo As String, Carpeta As String
uf = Range("A" & Rows.Count).End(xlUp).Row 'ultima fila con datos de la columna A
Set rng = Range("A2:A" & uf)
rng.Interior.Pattern = xlNone ' quito colores a la columna A
For Each celda In rng
If celda.Value <> vbNullString Then 'si hay datos sigue:
nomArchivo = celda.Value & "-" & celda.Offset(0, 1) 'concateno para noombre de archivo
col = Cells(celda.Row, Columns.Count).End(xlToLeft).Column 'ultima columna a contar de la derecha
If col > 1 Then 'si hay filas vacias daria error sin esta linea de código if
rngFila = Range(celda, celda.Offset(0, col - 1)) 'establece el rango desde la celda actual hasta la final
'JOIN une los 2 transpose con el separador "|",
'(uno crea un array vertical y el otro lo deja horizontal nuevamente
datosFila = Join(Application.Transpose(Application.Transpose(rngFila)), " | ")
miCarpeta = "C:\Users\TUUSUARIOAQUI\Desktop\MICARPETAPLANILLAS\" 'RUTA COMPLETA AQUI
Open miCarpeta & nomArchivo & ".txt" For Append As #1 'abre el archivo txt como numero 1
Print #1, datosFila 'imprime en el archivo los datos de la fila completa
Close ' cierra el archivo 1
End If
Else: celda.Interior.Color = vbYellow 'si no hay datos en celdas CODIGO , lo pintará de color amarillo
End If
Next celda ' siguiente celda a procesar
End Sub