Jump to content

gogua

Members
  • Posts

    21
  • Joined

  • Last visited

About gogua

Profile information

  • Localización:
    España

Converted

  • Mi versión de Excel:
    0

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

gogua's Achievements

  1. Hola , Tengo una UDF que realiza unas comprobaciones y asigna a la celda donde está la función unas fechas. Estoy intentando que en funcion de esas comprobaciones me ponga un fondo de celda de un color. Pero no lo consigo. Me da en la celda: #¡VALOR! Esta es la funcion: Function EFICACIA(Fecha As Date, Categoria As String, Plazo1 As String, Plazo2 As String, Plazo3 As String, Estado As String) As String '1 - Inmediata '2 - 1 mes '3 - 3 meses '4 - 6 meses '5 - 1 año revision = 3 '3 meses If UCase(Categoria) = "ACCIDENTE CON BAJA" Or UCase(Categoria) = "ACCIDENTE SIN BAJA" Or UCase(Categoria) = "CURA LABORAL" Or UCase(Categoria) = "INCIDENTE" _ And UCase(Estado) = "SI" Then P1 = Left(Plazo1, 1) P2 = Left(Plazo2, 1) P3 = Left(Plazo3, 1) If P1 > P2 Then Mayor = P1 Else Mayor = P2 End If If P3 > Mayor Then Mayor = P3 End If If Mayor = 1 Then 'Acción inmediata + 3 meses EFICACIA = DateAdd("m", revision, Fecha) End If If Mayor = 2 Then '1 mes + 3 meses EFICACIA = DateAdd("m", revision + 1, Fecha) End If If Mayor = 3 Then '3 meses + 3 meses EFICACIA = DateAdd("m", revision + 3, Fecha) End If If Mayor = 4 Then '6 meses + 3 meses EFICACIA = DateAdd("m", revision + 6, Fecha) End If If Mayor = 5 Then '1 año + 3 meses EFICACIA = DateAdd("m", revision + 12, Fecha) End If If (CDate(EFICACIA) - Date) < 15 Then ActiveCell.Interior.Color = RGB(255, 0, 0) ' rojo 'xlColorIndexNone sin color 'Target.Interior.Color = RGB(255, 0, 0) Else ActiveCell.Interior.xlColorIndexNone ' rojo 'xlColorIndexNone sin color 'Target.Interior.xlColorNone End If 'If (CDate(EFICACIA) - Date) < 15 Then 'EFICACIA = "MENOS 15 DIAS" 'End If Else EFICACIA = "No Aplica" End If lo que me falla es este IF, que lo he probado con activecell y target, sin exito. If (CDate(EFICACIA) - Date) < 15 Then ActiveCell.Interior.Color = RGB(255, 0, 0) ' rojo 'xlColorIndexNone sin color 'Target.Interior.Color = RGB(255, 0, 0) Else ActiveCell.Interior.xlColorIndexNone ' rojo 'xlColorIndexNone sin color 'Target.Interior.xlColorNone End If Gracias
  2. Hola , he revisado el excel y parece funcionar excepto en el caso de que haya algun MC completo y otros vacios, echa una vistazo a la fila 12 de la tabla con el caso que te comento. Fichero procesos-ayuda.xlsx. Por otra parte, a mi las formulas excel me cuesta componerlas como tu lo ha has hecho, porque no lo veo en "horizontal" la logica. Yo habia buscado una solución mediante codigo VBA y creando una UDF (ver fichero procesos.xlsm) porque para mi es mas facil ver este tipo de programación. El caso es que mi solución: 1.- Es muy básica y pobre a nivel de programación, pero para lo que quiero me serviría. 2.- prefiero tu aportación porque no hace falta habilitar el libro excel para macros. Muchas gracais a todos por las aportaciones procesos.xlsm procesos-ayuda.xlsx
  3. No he visto ninguna solución aún hasta mañana no tengo el pc delante
  4. Si, es un error pero da igual lo que contenga esa columna solo importa que tenga algo o nada
  5. Los campos MC puede ser cualquier texto. Solo influye que haya o no texto en el campo Para que finalizado sea Si, los estados si existen ya que puede existir solo 1 tienen que ser realizado. Si no hay ningún MC finalizado será No Aplica. Esta pensada para que si hay un MC haya su estado correspondiente, Realizado u otro estado
  6. Hola , Tengo una tabla con 3 procesos y necesito que en la columna Finalizado haya una validación en funcion del estado de 3 de las columnas de las tablas siempre que esas columnas tengan algun dato. Os dejo el fichero que he preparado de ejemplo y dentro de el esta explicación. Si pudiera ser con una formula en la columna Finalizado mejor. La tabla tiene 3 procesos: MC1, MC2 y MC3. Puede que exista 0, 1, 2 o 3 procesos. No tiene porque haber 3, puede no haber ninguno tambien. Necesito que la columna finalizado sea ""Si"" , ""No"" o ""No Aplica"" . La condición para que haya un ""Si"" en la columna finalizado, es que siempre que haya algun proceso MC estén todos ""Realizado"". Si no hay ningun MC deberá haber un ""No Aplica"". Si hay MC1 esté ""Realizado"", si hay MC1 y MC2 estén los 2 ""Realizado"" y si hay MC1, MC2, MC3 estén los tres ""Realizado"". Si alguno de los MC no están Realizado, la columna ""finalizado"" será ""No"". Las columnas anteriores de la tabla no intervienen en este cálculo. Gracias procesos.xlsx
  7. Gracias por tu aporte, yo estoy muy pez en cierto tipo de programación también. Gracias, entre tu solución y la última voy a poder hacer un mix. Antoni, basicamente es lo que conté en el primer mensaje, recorrer una fila dentro de una Tabla hasta que no haya datos en esa fila para no tener que evaluar todas las celdas de esa fila/s. Por lo que veo según los aportes de los compañeros, hay que definir la tabla como tal en el codigo para luego poder trabajar. De todas formas, voy a probar tu código de otra forma y os digo tambien. Gracias tambien por tu aporte, además me va a servir otra cosa que he visto que haces y que yo "desconocía" o no me acordaba que se podía hacer.
  8. Si, evalua siempre la fila 3, porque estaba haciendo pruebas con distintas filas a mano. Con tu codigo me hace lo mismo siempre me cuenta 33 que es el numero de columnas que tiene la Tabla. Yo creo que tiene que ver con el que es una Tabla como tal. He probado fuera de esa tabla con el mismo codigo (fila 38, que está fuera del rango de la Tabla) y si que funciona como se espera. Gracias de todos modos
  9. Buenos días, Tengo una tabla en una hoja y estoy intentando saber cual es la ultima celda vacia por la derecha de cada fila. Puede haber filas que estén completas (con datos en todas sus columnas o no) Estoy utilizando este código que supuestamente me da el numero de columna que no está vacia, pero parece comportarse erroneamente, ya que siempre me lee la ultima celda de la fila aunque esté vacia. Creo que puede ser por la propia definicion de tabla en excel? UltCol = Datos.Cells(3, Datos.Columns.Count).End(xlToLeft).Column Siempre me da la posicion 33 que es la columna AG. Alguna idea ? Gracias
  10. Muchas gracias, =BDEXTRAER($A$1:$K$25;$K$1;$R$7:$S$8) esta última opción me va a venir muy bien para muchas cosas.... Por lo que veo, esta funcion tiene que tener encabezados los "rangos", ya que si cambio $R$7:$S$8 por $R$8:$S$8 Ya no va bien....
  11. Hola, ! Si, muchas gracias, me sirve. Había encontrado algo casi igual, aunque no entiendo la diferencia de formato entre tu formula y la que encontre. =INDICE(K2:K25;COINCIDIR(R8&S8;A2:A25&B2:B25;0)) =INDICE(L2:L25;COINCIDIR(1;INDICE((A2:A25=R6)*(B2:B25=S6););0))
  12. Buenos días, Tengo un libro con datos de los cuales tengo que extraer indices en función del año y del mes (2 criterios en este caso. He visto en el foro que se han dado soluciones con la funcion FILTRAR, pero no consigo que me vaya bien. Y con la funcion BUSCARV y un columna auxiliar no puedo hacerlo ya que no puedo hacer una columna auxiliar en medio de las que ya están. El caso es que necesito en la celda R10 solamente un dato de la columna K (Indice frecuencia) utilizando el criterio de la colunma A y B (AÑO , MES) Os subo el archivo Gracias BUSCAR-2CRITERIOS.xlsx
×
×
  • Create New...

Important Information

Privacy Policy