¿Cómo realizo esto con macros?

Hola quería realizar lo siguiente: tengo una función que depende de un contador y lo que quiero es crear una columna con los valores que toma una celda (también dinámica) en mi caso k8.Esta celda se iría actualizando cada segundo las condiciones para empezar son que el contador sea menor que 60 y mayor que 25
En mi caso el contador es A1. La columna que quiero rellenar empieza en D9 He planteado este código pero no funciona ¿cómo puedo hacerlo?
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Dim t As Integer
    Dim i As Integer
    t = 59
    i = 9
    Do While ActiveSheet.Range("A1") < 60 & ActiveSheet.Range("A1") > 25
        If ActiveSheet.Range("A1") = t Then
        ActiveSheet.Range("Di") = ActiveSheet.Range("K8")
        i = i + 1
        t = t - 1
        End If
    Loop
    Application.EnableEvents = True
End Sub

1 respuesta

Respuesta
1
Analizando el código: 1. no le funciona inicialmente por que en la linea do while lo que esta haciendo con el rango A1 no es evaluar si es >25 y <60, lo que esta haciendo es que esta concatenando (uniendo) esos valores y 2. logre hacerlo funcionar (arreglandolo) pero para lo que necesitas este codigo es fatal, no es el correcto por que entra en un bucle infinito es decir que se ejecuta y nunca termina, como ud desea que se evalue esa celda cada vez que se actualiza una celda haga lo siguiente:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim t As Integer
    Dim i As Integer
    t = 59
    i = 9
If (Sheets("Hoja1").Range("A1").Value > 25) And (Sheets("Hoja1").Range("A1").Value < 60) Then
If ActiveSheet.Range("A1") = t Then
ActiveSheet.Range("D" & i).Value = ActiveSheet.Range("K8").Value
End If
i = i + 1
t = t - 1
End If
end sub
Bueno espero que esto sea lo que busca, si no es así por favor envíeme el archivo al correo [email protected] bien descrito de lo que hay que hacer y con mucho gusto le colaboro, recuerde que cualquier duda puede consultar en mi perfil, que tenga un feliz día, POR FAVOR NO OLVIDAR PUNTUAR Y FINALIZAR LA PREGUNTA.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas