Rellenar rango determinado en Columna. VB Excel

Les paso el código de una función generada, me rellenará las celdas a valor vacío, pero lo realiza dentro de un for una a una y se eterniza, y me gustaría saber si se puede rellenar dicho rango de una sola vez.
Muhas gracias.
Private Sub Limpieza_Hojas_Click()
'declaración de variables
Dim Hoja As String
Dim prueba As String
Dim fila As Integer
Dim col As Integer
Dim transformador As String
Dim rango As String
Dim rango2 As String
'captura la hoja trabajar en cuestión
Hoja = (ActiveWorkbook.Sheets("ORIGEN").Range("D10"))
'Seleecionamos Hoja en la que trabajar
ActiveWorkbook.Sheets(Hoja).Select
'Incializamos variable columnas
col = 1
'Mientras no sea vacio
Do While ActiveSheet.Cells(10, col).Select <> " "
'Si es distinto Lejano y U tráfico
If ActiveSheet.Cells(11, col) <> "Lejano" And ActiveSheet.Cells(11, col) <> "U trafico" Then
' Pongo valor en cada celda
For indice = 17 To 1400
ActiveSheet.Cells(indice, col) = ""
Next indice
col = col + 1
Else
col = col + 1
End If
Loop
End Sub
'
1

1 Respuesta

2.080.890 pts. En mi sitio encontraran material de ayuda, ejemplos...
Estimo que se recorre la fila 10 hasta encontrar una celda vacía. En ese caso termina el bucle DO.
Reemplazá tus instrucciones desde la línea en negrita hasta el End Sub por las que te dejo a continuación:
'Mientras no sea vacio
Do While ActiveSheet.Cells(10, col) <> ""
'Si es distinto Lejano y U tráfico
If ActiveSheet.Cells(11, col) <> "Lejano" And ActiveSheet.Cells(11, col) <> "U trafico" Then
' Pongo valor en cada celda - limpio el rango de celdas
Range(Cells(17, col), Cells(1400, col)) = ""
End If
col = col + 1
Loop
Sdos. Comentame cómo te resultó
Buenos días Matilde, funciona bien el rellerno a vacíos, lo que me sucede, es que lo realiza en la hoja Origen, donde tengo el botón y la captura del nombre de la página.
Y es raro porque el análisis de los campos si lo realiza en la página deseada.
Muchas gracias
Un saludo
Tenías estas instrucciones en tu rutina:
'captura la hoja trabajar en cuestión
Hoja = (ActiveWorkbook.Sheets("ORIGEN").Range("D10"))
'Seleecionamos Hoja en la que trabajar
ActiveWorkbook.Sheets(Hoja).Select
Allí estás seleccionando la hoja que necesitas.
Luego estabas utilizando ActiveSheet... es decir la Hoja que seleccionaste...
Podes asegurarte también agregando esto en la instrucción:
ActiveSheet.Range(Cells(17, col), Cells(1400, col)) = ""
Si necesitas que trabaje en una hoja distinta a la seleccionada tendrás que reemplazar ActiveSheet por otro nombre distinto a Hoja, por ej: Sheets(origen)...
Sdos
Elsa
Muchas gracias Elsa, por la ayuda funciona perfecto.
Terminada esta macro, voy a por otro reto, si tengo problemas pediré ayuda de nuevo.
Un saludo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas