Bueno sí,
Leí en TODOEXCEL que tiene opciones de VBA que se le han propuesto.
Aunque desde mi punto de vista, como usted depende de la apreciación, (autorización, validación... Etc.) de alguien más, en un escenario de 12,000 celdas, entonces elegir cuales cambiar y cuales no, es un desafío, no complicado, aunque sí es un reto de entendimiento.
Por otro lado, si usted es el autor y no tiene inconveniente con usar una hoja Auxiliar, tal vez le conviene más usar una columna Auxiliar en su lugar. En esa columna usar la función ESFORMULA(), similar a lo que usó para el condicional, para saber si el contenido es una fórmula o un valor, así en consecuencia del resultado VERDADERO o FALSO traer al final el que desea, puede ser el valor que está escrito e incluso con un SI() + BUSCARV() + INDIRECTO() podría traer la fórmula de la lista que preparó previamente.
Pruebe e intente,
Saludos
Por
Israel Cassales, · publicado
Buenas Noches
Tengo el siguiente código, que almacena las referencias de las celdas en la Variable Rango, para posteriormente borrar el contenido de las celdas.
El problema es que al llegar a la parte del borrado del Rango me Arroja error 1004 en tiempo de ejecución.
Son aproximadamente 100 celdas las que debe borrar.
Sub Factura_LimpiarPlantilla()
Dim Rango
Plantilla = "Factura_Registro"
Setup = "Factura_Setup"
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Sheets(Plantilla).Unprotect Clave
I = 2
Rango = ""
While Sheets(Setup).Cells(I, 3) <> ""
If Sheets(Setup).Cells(I, 5) = "SI" Then
Celda = Sheets(Setup).Cells(I, 3)
If Rango = "" Then Rango = Celda Else Rango = Rango & "," & Celda
End If
I = I + 1
Wend
Sheets(Plantilla).Range(Rango) = Empty
Sheets(Plantilla).Protect Clave
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub