Jump to content

Macro en función de un resultado


Recommended Posts

Buenos días:

Ante todo saludados y agradeceros lo que, poco a poco he ido aprendiendo en este foro, aunque de forma anónima,

Este es mi primer post y entro preguntando y con una consulta ya que me encuentro atascado en una hoja y no se como solucionar mi problema, os cuento:

Tengo una hoja en la que dependiendo de la categoría profesional que se le ponga, permite poner dietas o no.

La Categoría se coge de una lista desplegable y la celda dietas tiene una validación de datos personalizada con formula que "mira" en una celda que número hay, el número viene de una función "O" que analiza anteriormente las categorías que se han introducido y solo muestra "VERDADERO" si se ha introducido "Oficial 1" o bien "Oficial 2" , dependiende que que el resultado sea uno u otro, hay una celda que, mediante la función "SI" pone un 0 si es FALSO ó un 1 si es VERDADERO, esa es la celda a la que apunta la validación de datos y que, de principio deja o no deja poner dietas en la celda correspondiente.

Mi problema es que si termino un cálculo y al empezar otro nuevo, pongo una categoría a la que no le corresponde tener dietas, si se me olvida borrar la celda dietas, estas se quedan.

¿Hay alguna forma de hacer una macro condicionada a la categoría o a una celda cualquiera que borre esas cantidades que se han quedado?

Os adjunto una hoja con los datos introducidos para que veáis a lo que me refiero.

Muchísimas gracias

Un saludo

Dietas.xls

Link to comment
Share on other sites

Muchas gracias por las respuestas, ahora mismo lo pruebo

¿Puede que el archivo de problemas porque lo guarde como Excel 2007 y luego para subirlo aquí tuve que quitarle la x final?

En unos minutos lo subo de nuevo

Gracias

Link to comment
Share on other sites

Hola de nuevo, os subo el archivo, esta vez guardado como Excel 2003, extensión .xls

Ya lleva puesto el código que muy amablemente me ha puesto Toldeman y funciona de maravilla :welcoming: :welcoming:

Y ahora, abusando de vuestra paciencia, es que lo tengo que poner en tres celdas diferentes y no se como extenderlo a las otras dos celdas, he probado de todas las formas que se me han ocurrido y no funciona en las dos celdas de debajo :orange::orange::orange:

¿me podrías decir como lo hago? por favor

Muchísimas gracias de nuevo

Un saludo

Dietas1.xls

Link to comment
Share on other sites

Hola.

Prueba asi:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("D5:D7")) Is Nothing Then Exit Sub
If [M5] <> 1 Then [G5] = ""
If [M6] <> 1 Then [G6] = ""
If [M7] <> 1 Then [G7] = ""
End Sub

Un saludo.

Link to comment
Share on other sites

Hola fancalo

En efecto l problema estaba en que habías eliminado la x de la extensión y estaba tratando de abrirlo en 2003.

Por otra parte y respecto a tu pregunta. No te hace falta usar macros, si en la validación de las celdas dieta usas algo como

=IZQUIERDA(D5;3)="Ofi"

te es suficiente, en el adjunto tienes el ejemplo al completo.

Un saludo desde Vitoria

Validación_io_120420.zip

Link to comment
Share on other sites

Gracias ioyama por tu respuesta, lo siento, eso me que indicas funciona para la primera parte del problema, es decir, la validación de datos es mucho mejor como tu me indicas que como yo la he hecho ya que carga de menos cálculos a la hoja, no obstante el problema que tenía, es que si dejo una cantidad en un cálculo anterior hecho para un Oficial 1, al cambiar la categoría a Secretaria, por ejemplo, me deja la cantidad que tenía puesta, y lo que buscaba es que en el momento que pusiese una categoría que no puede llevar diestas esas se borrasen.

Subo el archivo modificado con el código que me ha enseñado Toldeman y que funciona perfectamente

Un saludo desde Marbella

Dietas_Solucionado.xls

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

Privacy Policy