Autorrelleno de columnas con una condición

2 envíos / 0 nuevos
Último envío
Chriss
Imagen de Chriss
Offline
última acción: Hace 6 años 10 meses
alta: 25/01/2018 - 14:13
Puntos: 25
Autorrelleno de columnas con una condición

Tengo que rellenar las columnas con el ultimo valor superior registrado en la columna, eso logré hacerlo pero pero tengo problemas de que no para y copia hasta el final de la columna y yo necesito que se detenga cuando las celdas de na columna adyacente esten vacias.Adjunto codigo que uso, este codigo rellena pero no se detiene. Saludos

 

 

Dim Ws As Worksheet

Dim Rgo As Range

Dim UF As Long

Dim PF As Integer

Set Ws = ActiveSheet

Dim celda As Range

For Each celda In Range("C:C")

 

If celda <> "" Then

With Ws

    'Encontramos la primera fila con valores

    PF = .Range("C1").End(xlDown).Row

    'Encontramos la última fila con valores

    UF = .Range("C" & .Rows.Count).End(xlUp).Row

   

    Set Rng = .Range("D6:UF" & UF)

    Set Rgo = .Range("D" & PF & ":E" & UF)

End With

 

'formulamos las celdas en blanco para que tomen el valor de la celda anterior

Rgo.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"

 

Next celda

Set Ws = Nothing

Set Rgo = Nothing

 

End If

 

 

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 2 semanas 12 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
tu bucle For Each celda In

tu bucle For Each celda In Range("C:C") no se detiene nunca y se ejecuta una y otra vez hasta que termine la columna C, supongo que bastará con que salgas del bucle cuando completes las fórmulas

es decir, añade Exit For después de rellenar las fórmulas  

'formulamos las celdas en blanco para que tomen el valor de la celda anterior

Rgo.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"

Exit For

 

Si lo que necesitas es comparar con la celda de al lado, puedes utilizar .Offset

la celda a la derecha de tu celda es celda.Offset(0,1)

 

 

------
Ya sé Excel, pero necesito más.