Al hilo de este post del blog (leer), un lector planteaba la siguiente cuestión:
La idea sería completar las celdas vacías, sin contenido y sin color de fondo verde!!.
Para ello redefiniremos la macro del post anterior, incorporándole un condicional IF THEN que controle dicha situación...
Insertamos nuestro código en un módulo estándar de nuestro proyecto de VBA desde el editor de VB:
Tras lanzar nuestro procedimiento este es el resultado obtenido:
Hola buenas noches! Excelente post! ojalá me pueda ayudar, tengo una tabla en excel y rellene algunas celdas de color verde (estas son salteadas), quiero saber si hay forma de rellenar las que están en blanco de otro color. Muchas gracias por su atención. |
La idea sería completar las celdas vacías, sin contenido y sin color de fondo verde!!.
Para ello redefiniremos la macro del post anterior, incorporándole un condicional IF THEN que controle dicha situación...
Insertamos nuestro código en un módulo estándar de nuestro proyecto de VBA desde el editor de VB:
Sub RellenaCeldasenBlanco() Dim hoja As Worksheet Dim UltFila As Long Dim Rng As Range Set hoja = Sheets("Hoja1") With hoja 'Encontramos la última fila con valores UltFila = .Range("A" & .Rows.Count).End(xlUp).Row 'creamos el rango Set Rng = .Range("A1:A" & UltFila) End With 'contador para determinar si es o no la primera celda vacía x = 0 'recorremos el rango completo de estudio For Each celda In Rng 'controlamos cada celda, si está o no vacía y si además el color de fondo es el Verde If celda.Value = "" And celda.Interior.Color <> 5287936 Then 'si son afirmativas ambas condiciones aumentamos el contador x = x + 1 'distinguimos el caso si fuera la primera celda o siguientes 'creamos un concatenado tipo texto con las referencias de las celdas If x = 1 Then Rng2 = celda.Address Else Rng2 = celda.Address & "," & Rng2 End If End If Next celda 'finalmente seleccionamos el rango compuesto y ejecutamos la acción de Rellenar celdas vacías Range(Rng2).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C+1" 'liberamos las variables de objeto Set hoja = Nothing Set Rng = Nothing End Sub
Tras lanzar nuestro procedimiento este es el resultado obtenido:
Hola Ismael espero te encuentres bien, requiero de tu ayuda en esta oportunidad ya que necesito hacer que una macro cree un libro nuevo pegue algunos valores y lo guarde, el tema es que el nombre del archivo seria algo así: "Produccion_26102015", siendo la fecha dinámica para cada día o cada vez que se solicite dicha acción, pero al incluir en el nombre el rango de la celda me arroja un error (error en el metodo 'Save as' de objeto _Workbook y no me deja avanzar... Adjunto linea involucrada de la rutina...
ResponderEliminary de antemano muchas gracias por tu siempre valiosa colaboración...
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\irvic.rauseo\Desktop\LINIO\Produccion\" & Range("N4").Text & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Hola Irvic,
Eliminarhe replicado el proceso y me confirma lo que veía.. la sentencia es correcta (y funciona bien); asi que lo único que puede fallar es:
1- la ruta es incorrecta
2-el nombre del fichero en N4 tiene algún caracter raro.
Saludos
Hola Ismael tienes razón anoche después de tanto buscar por Internet y al obtener tu respuesta revise y pues corregí el error, muchas gracias...
Eliminar;-)
EliminarUn saludo
se detene en el If celda.Value = "" And celda.Interior.Color <> 5287936 Then
ResponderEliminarHola Miguel
Eliminarqué tal estás?, un placer saludarte igualmente...
Revisa el código, ya que no hay nada en esa línea que impida su ejecución..
quizá haya algún tipo de error en las celdas...
Saludos