
No respeta rango concatenar
Publicado por Fernando (3 intervenciones) el 17/12/2021 00:04:04
hola amigos... espero alguien pueda ayudarme....
no logro entender por que la macro no respeta en la etapa2 el rango de inicio establecido por Pos3 y empieza a concatenar siempre desde la celda h2
desde ya agradezco la ayuda
Sub ConcatColumns()
Range("h2").Select
pos1 = ActiveCell.Offset(0, -2).Address
ActiveCell.Offset(ActiveCell.Value - 1, 0).Select
pos2 = ActiveCell.Offset(0, -2).Address
For Each celda In Range(pos1, pos2)
If celda.Value <> "" Then
Resultado = Resultado & "/" & celda.Value
End If
Next celda
'Se remueve el ; y espacio inicial
Resultado = Right(Resultado, Len(Resultado) - 1)
ActiveCell = Resultado
ActiveCell.Offset(1, 0).Select
' ********ETAPA 2************
Do While ActiveCell <> Empty
pos3 = ActiveCell.Offset(0, -2).Address
ActiveCell.Offset(ActiveCell.Value - 1, 0).Select
pos4 = ActiveCell.Offset(0, -2).Address
For Each celda In Range(pos3, pos4)
If celda.Value <> "" Then
Resultado = Resultado & "/" & celda.Value
End If
Next celda
ActiveCell = Resultado
ActiveCell.Offset(1, 0).Select
Loop
End Sub
no logro entender por que la macro no respeta en la etapa2 el rango de inicio establecido por Pos3 y empieza a concatenar siempre desde la celda h2
desde ya agradezco la ayuda
Sub ConcatColumns()
Range("h2").Select
pos1 = ActiveCell.Offset(0, -2).Address
ActiveCell.Offset(ActiveCell.Value - 1, 0).Select
pos2 = ActiveCell.Offset(0, -2).Address
For Each celda In Range(pos1, pos2)
If celda.Value <> "" Then
Resultado = Resultado & "/" & celda.Value
End If
Next celda
'Se remueve el ; y espacio inicial
Resultado = Right(Resultado, Len(Resultado) - 1)
ActiveCell = Resultado
ActiveCell.Offset(1, 0).Select
' ********ETAPA 2************
Do While ActiveCell <> Empty
pos3 = ActiveCell.Offset(0, -2).Address
ActiveCell.Offset(ActiveCell.Value - 1, 0).Select
pos4 = ActiveCell.Offset(0, -2).Address
For Each celda In Range(pos3, pos4)
If celda.Value <> "" Then
Resultado = Resultado & "/" & celda.Value
End If
Next celda
ActiveCell = Resultado
ActiveCell.Offset(1, 0).Select
Loop
End Sub
- Series-lex.rar(22,0 KB)
Valora esta pregunta


0