No borrar ni sobreescribir el valor de una celda

Otra vez. Aquí estoy molestando con otra pregunta más...

Veréis, en el pequeño programilla que estoy haciendo, me interesa poder copiar el valor de una celda en todo un rango determinado, pero si alguna de las celdas del rango tiene el valor de "Festivo", quiero que siga manteniendo ese valor y que no me lo sustituya.

La línea de código que he escrito es el siguiente:

En una hoja de cálculo en la que los días del mes aparecen en la columna A y las Observaciones en la B, me gustaría que apareciese en dicha columna b el valor que yo quiera establecer.

Por ejemplo:

range(B28:B31).value = "Días Libres"

Vale, me coloca las palabras "Días Libres" en el rango especificado, ahora bien: En Zaragoza (es donde vivo) el día 29 de Enero es festivo, por lo que en esa celda, ya aparece el valor "Festivo" (o "Festividad Local") y lo que yo querría es que en las celdas B28, B30 y B31 colocase el valor de "Días Libres", pero en la celda B29 respetase el valor de "Festivo", "Festividad Local" y "Festividad Nacional" ya que, si un día es Festivo, al solicitar días libres, ese día no se computa, es decir, en este caso concreto, deberían computarse como días libres el 28,30 y 31 (tres días y no cuatro, ya que el 29 es festivo...)

Además, y si bien he puesto un rango concreto, lo que me interesa es automatizarlo para cualquier rango que pudiera elegir...

1 Respuesta

Respuesta
1

Para la primer parte de tu consulta te recomiendo utilizar un bucle que recorra todas las celdas del rango y evalúe su contenido:

For Each celdita In Range(rgo)
    If celdita.Value = "" Then celdita.Value = "Días Libres"
Next celdita

Observa que utilicé una variable llamada 'rgo'. Y esto responde a tu segunda duda, que sea apta para cualquier rango.

Es decir que antes de ese bucle debes definir la dirección del rango, por ej:

rgo = "B28:B31"

O si la macro se ejecuta luego de hayas seleccionado el rango manualmente, sería:

rgo = Selection.Address

PD) Otras instrucciones para seleccionar rangos podés encontrarlas en la sección Macros de mi sitio.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas