Problema con ActiveCell.Offset

Tengo un código, es para resaltar bordes, quiero que se resalten los bordes de un arbol binomial segun el numero de pasos que se indiquen, en el ultimo paso en el ActiveCell.Offset no permite usar las variables que le indico, necesito que inicien fijas y se muevan con cada ciclo, alguna idea? Les agradeceria
Sub bordes()
n = InputBox("De cuántos pasos será el arbol binomial?", " Valuacion Binomial")
Range("E100").Select
With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    ActiveCell.Offset(1, 0).Select
With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
Range("E101").Select
n1 = 11
n2 = -8
For i = 1 To n
ActiveCell.Offset(-3, 2).Select
With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    ActiveCell.Offset(1, 0).Select
With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    ActiveCell.Offset(n1, n2).Select
    If i = n Then
    n = n - 1
    n1 = n1 - 2
    n2 = n2 + 2
    End If
    Next i
End Sub

1 respuesta

Respuesta
1
Tu codigo no tiene problemas, las variables estan tomando perfectamente los valores en que los inicias y se estan incrementando y decrementando, el detalle en tu programacion es que a n2 que es el valor que se movera el offset en columnas le estas dando un valor imposible, tu codigo ubica la celda en la columna G que es la columna 7 y quieres obligar a que el offset recorra -8 columnas en la primera vuelta lo cual es imposible, lo unico que se pudiera recorrer seria obviamente -7 para quedar en la columna A, solamente tienes que replantear la ubicacion de tu arbol.
Espero que te sirva la respuesta y no olvides valorarla.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas