Excel - Buscar un dato en una matriz

 
Vista:
sin imagen de perfil
Val: 18
Ha disminuido su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

Buscar un dato en una matriz

Publicado por Luis (13 intervenciones) el 06/01/2019 13:51:17
Buenos días y feliz año a todos los miembros del foro.

Estoy empezando a aprender a programar macros.
La consulta que os quiero hacer es:

Como se hace para moverse por una matriz y buscar un valor.
En mi caso la matriz esta formada por los días del calendario de enero que comprende el rango ("B2:H15).

En la celda "B19" tengo señalado el 01/01/2019 como festivo y en la contigua el 07/01/2019.

me gustaría recorrer la matriz, buscar la fecha que indica la celda "B19" y posicionarme en la celda inferior a esta para que me guarde en la variable "Contenido" el valor que hay en la celda inferior al 1 de enero en el calendario.
El problema es que no se como puedo desplazarme y buscar el valor que contiene la celda en la matriz.

Subo un archivo.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de wordexperto.com
Val: 6.373
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Buscar un dato en una matriz

Publicado por wordexperto.com (2803 intervenciones) el 06/01/2019 17:01:21
Hola Luis:
Esto con un Offset lo puedes conseguir.
La cuestión es: ¿Por qué quieres convertir Excel en un calendario? Ya hay aplicaciones calendario, mejores que Excel para este fin.
Cada cosa es para lo suyo y el conejo para el arroz.
https://wordexperto.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 18
Ha disminuido su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

Buscar un dato en una matriz

Publicado por Luis (13 intervenciones) el 07/01/2019 09:28:56
Hola,. gracias por la respuesta.

El archivo que he subido es pararte de una hoja de un programa que estoy haciendo para contar los permisos que cogen los compañeros. Lo tenía funcionando con formulas y ahora intento automatizar ciertas funciones.

El calendario de enero subido es parte de la hoja Cuadrante Anual, que muestra todos los meses, los permisos cogidos y los días pendientes de cada trabajador. hasta ahora, cada año, tenia que reformular la opción de los festivos para que coincidieran con las celdas del festivo correspondiente.

mi idea es hacer una macro, que busque el festivo en el rango, mediante un offset, baje una celda y compruebe el valor de la celda, por si el trabajador esta en IT o no tenia contrato en vigor por ejemplo.


Se desplazarme verticalmente en una columna, pero no se como puedo buscar dentro de una matriz. he intentado mediante For anidados con variables F y C, pero no lo he conseguido. Por eso pregunto como encontrar el valor de una variable (festivo) dentro del rango del calendario.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Buscar un dato en una matriz

Publicado por Antoni Masana (2481 intervenciones) el 07/01/2019 11:42:50
No se que funcion te puede servir, pero yo cuando no la encuentro me la hago, ventajas de ser programador.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Option Explicit
 
Public Function Buscar_Mes(Fecha) As String
    Dim fila As Integer, Colu As Integer
    Buscar_Mes = ""
    For fila = 4 To 14
        For Colu = 2 To 8
            If Cells(fila, Colu) = Fecha Then
               Buscar_Mes = Cells(fila + 1, Colu)
               Exit For
            End If
        Next
    Next
End Function

Adjunto Libro

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 18
Ha disminuido su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

Buscar un dato en una matriz

Publicado por Luis (13 intervenciones) el 08/01/2019 13:24:37
Muchas gracias Antoni. Es justo lo que necesitaba. Más sencillo de lo que yo pensaba. Aunque al ejecutarlo, me he dado cuenta de un pequeño inconveniente, si disfruta el festivo el mismo día de la fiesta, se baja a la siguiente celda y no se para en la primera celda con el dato que busca.


Muchas gracias por la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Buscar un dato en una matriz

Publicado por Antoni Masana (2481 intervenciones) el 08/01/2019 14:52:37
Falta salir del primer FOR

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Option Explicit
 
Public Function Buscar_Mes(Fecha) As String
    Dim fila As Integer, Colu As Integer
    Buscar_Mes = ""
    For fila = 4 To 14
        For Colu = 2 To 8
            If Cells(fila, Colu) = Fecha Then
               Buscar_Mes = Cells(fila + 1, Colu)
               Exit For
            End If
        Next
        If Buscar_Mes <> "" Then Exit For  ' --- No se si funcionara. Pruebalo.
    Next
End Function

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 18
Ha disminuido su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

Buscar un dato en una matriz

Publicado por Luis (13 intervenciones) el 08/01/2019 16:52:01
Funciona perfectamente.

Gracias de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar