Macro con Fechas

Hola Fernando Como esta, Espero que bien. Todavía estoy esperando la respuesta a la pregunta anterior de Hacer Búsquedas de Datos de Empleados con Una Macro.
Bueno tengo otra pregunta quisiera que me pudiera ayudar con esto. Tengo una macro donde tengo que verificar en la celda activa (esta celda tiene una fecha) el Mes y el Año pero no me funciona con las Instrucciones que e Puesto se la mando para que la revisé y me ayude a que funcione.
Sub Prueba2()
'
' Prueba2 Macro
' Macro grabada el 22/08/2002 por Swissport GBH Honduras
'
Range("A1").Select
Selection.Copy
Range("B1").Select
Selection.End(xlDown).Select
ActiveCell.Activate
Dim Mifecha, MiMes, MiAño
Mifecha = ActiveCell.Value
If MiMes = Month(Mifecha) = "1" And MiAño = Year(Mifecha) = "2002" Then
Selection.End(xlDown).Select
ActiveCell.Offset(1, 1).Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ElseIf MiMes = Month(Mifecha) = "2" And MiAño = Year(Mifecha) = "2002" Then
Selection.End(xlDown).Select
ActiveCell.Offset(1, 2).Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ElseIf MiMes = Month(Mifecha) = "3" And MiAño = Year(Mifecha) = "2002" Then
Selection.End(xlDown).Select
ActiveCell.Offset(1, 3).Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ElseIf MiMes = Month(Mifecha) = "4" And MiAño = Year(Mifecha) = "2002" Then
Selection.End(xlDown).Select
ActiveCell.Offset(1, 4).Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ElseIf MiMes = Month(Mifecha) = "5" And MiAño = Year(Mifecha) = "2002" Then
Selection.End(xlDown).Select
ActiveCell.Offset(1, 5).Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ElseIf MiMes = Month(Mifecha) = "6" And MiAño = Year(Mifecha) = "2002" Then
Selection.End(xlDown).Select
ActiveCell.Offset(1, 6).Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ElseIf MiMes = Month(Mifecha) = "7" And MiAño = Year(Mifecha) = "2002" Then
Selection.End(xlDown).Select
ActiveCell.Offset(1, 7).Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ElseIf MiMes = Month(Mifecha) = "8" And MiAño = Year(Mifecha) = "2002" Then
Selection.End(xlDown).Select
ActiveCell.Offset(1, 8).Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ElseIf MiMes = Month(Mifecha) = "9" And MiAño = Year(Mifecha) = "2002" Then
Selection.End(xlDown).Select
ActiveCell.Offset(1, 9).Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ElseIf MiMes = Month(Mifecha) = "10" And MiAño = Year(Mifecha) = "2002" Then
Selection.End(xlDown).Select
ActiveCell.Offset(1, 10).Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ElseIf MiMes = Month(Mifecha) = "11" And MiAño = Year(Mifecha) = "2002" Then
Selection.End(xlDown).Select
ActiveCell.Offset(1, 11).Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Else
Selection.End(xlDown).Select
ActiveCell.Offset(1, 12).Range ("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End If
End Sub
Ojala pueda darme una respuesta pronto, se lo agradecería Mucho.
Atentamente.
Cesar Ivan Ordoñez (de Honduras)

1 respuesta

Respuesta
1
Si entendí medianamente la idea de aquella macro, me parece que la siguiente haría lo mismo. Agregué comentarios al lado de algunnos comandos para ver si estamos de acuerdo en lo que quieres que haga:
Sub CheckMes()
Dim Mifecha As Date
Range("A1").Copy
Range("B1").End(xlDown).Select ' Elige la última celda ocupada de la columna B
Mifecha = ActiveCell.Value 'toma la fecha que encontró allí
MiMes = Month(Mifecha) ' identifica el mes
If Year(Mifecha) = 2002 Then
' Selection.End(xlDown).Select ' ANULADA: si la dejara activa y ya estaba en la última celda de la columna ir al final de la planilla o donde encuentre una próxima celda llena
ActiveCell. Offset(1, Month(Mifecha)).Select 'elige la fila siguiente a la última en la columna dada por el mes
ActiveSheet.Paste ' pega lo copiado de A1
Application.CutCopyMode = False
End If
End Sub
Pruebalo y dime si funciona.
Vi tu comentario de la respuesta anterior.
En ninguna de las n pruebas que le hice a aquella macro sobrescribió datos.
Controla la variable Primera celda y que no haya espacios en blanco (celdas vacías) entre cada registro ingresado
Respuesta Esta Excelente, no Cabe duda que es un Maestro, yo había echo una macro Grandísima y usted con unas cuantas Instrucciones realiza lo que yo quería Hacer. Gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas