Hola Elsa,
Versión corta:
después de darles muchas vueltas, he visto la luz. Me vale perfectamente la primera macro que me has preparado.Muchas Gracias!
Versión completa (meramente prescindible):
Verás, tengo una macro ya echa "Graba" que graba los datos de la hoja 1 (factura) a la hoja 2 (Datos) almacenándolos en columnas y ordenándolos por fechas. La hoja factura tiene unos chivatos que comprueban errores al rellenar la factura (celdas vacías, fechas incorrectas, etc) y todos estos errores los recoge la celda a23. Si 1 error, si 0 todo correcto.
Y ligado a esta celda a23, tengo una línea donde sale el texto del error que extrae de un pequeño listado, con un =si + buscarv. Y esta línea además tiene formato condicional, si no hay errores fondo y letra negra (no se ve nada, ya que esta hoja es de fondo negro, y letra roja si hay errores).
El problema es que no quería que esos errores se mostraran mientras estas rellenando la factura, ya que no tiene sentido que empieces a rellenar la fecha y te salte el error de que te falta por rellenar lo que sea... por eso necesitaba esta nueva macro llemémosla "comprueba" que lo que hace es ver si hay errores (a23) y en función de eso, ó activa "Graba" (si no los hay) ó permite mostrar el error y no ejecuta Graba, para evitar que se graben facturas incompletas lo que me daría errores después al extraer información.
Tal como me lo has puesto, ya me sirve. Pues lo único que he de hacer es que la hoja que graba en el último paso me borre el 1 que pone esta nueva macro. Y así los errores sólo se muestran cuando quiero :). Todo esto también lo podía a ver echo con una macro que ya tuviera todos los avisos con mensajes msgbox, anidando varios " if.. then"... pero como no se le puede cambiar el diseño al cartelito (no me gusta), prefiero que funcione así.