Extraer mes mediante macro en excel

Estoy realizando una macro que crea reportes estadísticos y necesito extraer algunos datos mediante el mes en que se ingreso el registro, pero la fecha en la hoja de excel esta en formato dd:mm:aa, existe alguna forma de obtener, ¿mediante macro el valor de ese "mm"?

1 Respuesta

Respuesta
1
Si el valor de la celda es una fecha y se ve así porque tiene ese formato, entonces puedes obtener el mes mediante la función "month":
if month(A1) = mesBuscado then ....
Si el valor es un texto, supongo que es ese el caso, lo que tienes que tener en cuenta es que siempre debe estar en ese formato. En ese caso, el mes estaría siempre entre las posiciones 4 y 5 del texto, o lo que es lo mismo, empieza en la posición 4 y tiene una longitud de 2.
En este caso la instrucción sería:
if val(mid$(A1,4,2)) = mesBuscado then ...
En ambos casos he supuesto que el mesBuscado es una variable numérica de tipo entero. Si fuese de tipo texto podrías usar la función val(mesBuscado) para realizar la comparación de forma numérica.
Muy buena respuesta, es exactamente lo que estaba buscando, ahora me surge una nueva duda, espero me puedas ayudar, necesito otro reporte que me muestre también los datos del mes, pero con las condiciones que si columna A tiene el tipo de dato buscado y columna b tiene valor verdadera, me devuelva el mes indicado en columna C
Estos datos ya los tengo almacenados en una variable de tipo renge
Gracias
Para trabajar con un 'Rango' de celdas, es muy útil usar la propiedad 'specialcells'.
Mezclado eso con lo que preguntas sobre la columna A, B y C, la base del código que buscas sería algo así:
Sub miProceso(ByRef miRango As Range)
    Dim nLin As Integer
    For nLin = 1 To miRango.SpecialCells(xlCellTypeLastCell).Row
        If miRango.Cells(nLin, 1) = <valorBuscado> And _
           miRango.Cells(nLin, 2) And _
           val(mid$(miRango.Cells(nLi<n, 3),4,2)) = val(<mesBuscado>) Then
            ..............................
            ..............................
            ..............................
        End If
    Next nLin
End Sub
Ten en cuenta que acostumbro a utilizar el objeto 'Cells' con 2 parámetros: la fila y columna. De esta forma evito utilizar la instrucción "offset" que a mi no me acaba de gustar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas