UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1RESUELTO modificar vaciado de calendario el 29/07/14, 11:24 pm

maquinitaazul


Hola amigos expertos, hoy vengo con una gran duda acerca de un calendario en excel. Primero que nada quiero decir que el calendario que aquí les traigo no es uno que excel de por default, sino que es uno creado a base de programación y de hecho muy impresionante, es una aportación de un grande Macro Antonio. He optado por utilizar su aporte porque he tenido mucho problemas con el control calendario que excel maneja, ademas que el archivo que quiero formar será visto en varias versiones de excel y por eso ocupo que el calendario sea visible en toda versión. Bueno, mi duda es; ¿cómo puedo cambiar la celda en la que se vacía la fecha del calendario?, he intentado entender el código, pero la verdad este tipo de porgramación va mas allá de mis limites, espero me puedan ayudar expertos. Saludos
Archivos
Calendario-automatico-desde-Excel (1).zip
No tienes los permisos para descargar los archivos.
(48 KB)

2RESUELTO Re: modificar vaciado de calendario el 30/07/14, 03:00 pm

tyno


Hola maquinitaazul.
Tendrías que entrar al modulo clase y modificar las dos ultimas lineas de este codigo:

Private Sub MiLabel_Click()
On Error Resume Next

If Val(Mid(MiLabel.Name, 2)) = 1 Then
   If Calendario.xMes.ListIndex > 0 Then
      Calendario.xMes.ListIndex = Calendario.xMes.ListIndex - 1
   Else
      If Calendario.xAño.ListIndex > 0 Then
         Calendario.xMes.ListIndex = 11
         Calendario.xAño.ListIndex = Calendario.xAño.ListIndex - 1
      End If
   End If
End If

If Val(Mid(MiLabel.Name, 2)) = 3 Then
   If Calendario.xMes.ListIndex < 11 Then
      Calendario.xMes.ListIndex = Calendario.xMes.ListIndex + 1
   Else
      If Calendario.xAño.ListIndex < Calendario.xAño.ListCount - 1 Then
         Calendario.xMes.ListIndex = 0
         Calendario.xAño.ListIndex = Calendario.xAño.ListIndex + 1
      End If
   End If
End If

If Val(Mid(MiLabel.Name, 2)) = 5 Then
   If Calendario.xAño.ListIndex > 0 Then
      Calendario.xAño.ListIndex = Calendario.xAño.ListIndex - 1
   End If
End If

If Val(Mid(MiLabel.Name, 2)) = 6 Then
   If Calendario.xAño.ListIndex < Calendario.xAño.ListCount - 1 Then
      Calendario.xAño.ListIndex = Calendario.xAño.ListIndex + 1
   End If
End If

If Val(Mid(MiLabel.Name, 2)) = 7 Then Unload Calendario

If Val(Mid(MiLabel.Name, 2)) = 2 Or _
   Val(Mid(MiLabel.Name, 2)) = 4 Then
   Beep
End If
   
If Val(Mid(MiLabel.Name, 2)) < 8 Then Exit Sub

ActiveCell = CDate(MiLabel.Tag)
ActiveCell.Offset(0, 1).Select
End Sub


De esas dos lineas en la primera  se ha determinado donde se asigna la fecha seleccionada. Con la segunda linea se ha establecido desplazar la selección una celda a la derecha. 

Saludos

3RESUELTO Re: modificar vaciado de calendario el 31/07/14, 02:36 am

maquinitaazul


Hola Tyno, gracias por contestar. Lo que me indicas es que el calendario aparezca en la columna contigua. Estuve leyendo y leyendo el código y logre ver que en el evento this wookbook y vi esto:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range): On Error GoTo Sal
   Unload Calendario
   If UCase(Sh.Cells(1, Target.Column)) Like "*FECHA*" And _
      Target.Row > 1 And _
      Target.Cells.Count = 1 And _
      IsEmpty(Target.Offset(-1, 0)) = False Then
      Calendario.Top = ActiveCell.Top + 160
      Calendario.Left = ActiveCell.Left + 18
      Calendario.Show
   End If
Sal:
End Sub

Lo que entiendo aquí es que toda aquella celda ,(después del encabezado), que contenga la palabra FECHA, debajo de ella se ejecutara el calendario, pensé que aquí sería la modificación. De todas formas muchas gracias, probaré tu opción y comento...

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.