Macro determine mes y año de una celda

Mi nombre es Mauricio, espero que me pueda ayudar ya que tengo una base en la cual tengo una columna de fechas y necesito una macro que en otra columna me coloque el mes y el año respecto a la columna A de fecha(tiene formato de fecha)
Ejemplo la columna C y DE son las que se llenarían
                 A B C D
1        01/02/11        carlos          Febrero        2011
2        02/03/10        juan            Marzo           2010
3        10/01/11        beto            Enero           2011

1 respuesta

Respuesta
2
Tendrás que colocar en un rango auxiliar (en mi ej col K:L) una tabla con nros-nombres de meses
Luego en la col C esta fórmula:
=BUSCARV(MES(A1);$K$1:$L$12;2;FALSO)
y en col D:
=AÑO(A1)
Ahora podes arrastrar al resto de las col C y D
Sdos y no olvides finalizar la consulta
No reparé que solicitaste que sea con 1 macro... confírmame si te alcanza con las fórmulas.
Sdos
Elsa
Hola muchas gracias por la información,
Por que al momento es así como lo realizo, con fórmula y para aplicarlo en la macro tengo que hacer lo siguiente
Range("AB2").Select
'coloca la formula =año(D2)
Range("AB2").FormulaR1C1 = "=YEAR(RC[-24])"
'copia la celda
    Selection.Copy
'selecciona el rango en base a la columna C
    variable = Range("C2").End(xlDown).Offset(0, 0).Row
    Rango = ("AB2" & ":AB" & variable)
'selcciona rango y pega
    Range(Rango).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
'selcciona todo el rango con formulas
    Selection.Copy
    Range("AB2").Select
'pega solo valores.
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False
De esta manera lo hago, y como tengo una base muy grande y tengo que aplicarlo varias veces me consume mucha memoria y quisiera saber como se haría agilizando con la macro directamente, es decir que escriba los datos directamente, sin tener que escribir la fórmula en la tabla y luego copiar y pegar y volver a copiar y pegar valores.
Utilizando un un For lo he visto como funciona pero no lo se aplicar.
Espero y me puedas ayudar.
Te dejo la rutina... solo falta que completes los nombres de los meses donde te lo indico.
Sub completaFechas()
'x Elsamatilde
'guardo el nro de la última fila con datos, según col A
ultima = Range("A65536").End(xlUp).Row
'guardo en una matriz los nombres de los meses - COMPLETAR
M = Array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio")
'recorro el rango hasta la última
Range("C1").Select
While ActiveCell.Row <= ultima
    'guardo el mes
    nromes = Month(ActiveCell.Offset(0, -2)) - 1        '*
    ActiveCell.Value = M(nromes)
    'guardo el año en col sgte
    ActiveCell.Offset(0, 1) = Year(ActiveCell.Offset(0, -2))
    'paso a la fila sgte
    ActiveCell.Offset(1, 0).Select
'repito el bucle
Wend
End Sub
'* Se resta 1 porque la matriz empieza en 0

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas