Calendario

Disculap que te moleste pero y te mande un archivo con la consulta de como puedo combinar ese formulario de calendario y espacios en blanco, es decir como puede uno cuando se cargue el formulario que las cajas de texto aparezcan vacías, de tal manera que uno pueda colocar la fecha a través de la aplicación del calendario, pero que si quiero colocar una sola no me interfiera con el resto, de antemano muchas gracias, por tomarte el tiempo para ayudarme

1 Respuesta

Respuesta
1
En el siguiente procedimiento tienes que quitar lo referente a txtFecha...
Las tres líneas
***********************
Private Sub UserForm_Initialize()
With Calendario
.Value = Now()
txtFecha.Text = Format(.Value, "dd-mmm-yyyy")
txtInicio.Text = Format(.Value, "dd-mmm-yyyy")
txtFin.Text = Format(.Value, "dd-mmm-yyyy")
.Top = txtFecha.Top + txtFecha.Height
.Left = txtFecha.Left
.Width = 210
.Height = 130
End With
End Sub
****************
quedaría así
Private Sub UserForm_Initialize()
With Calendario
.Value = Now()
.Left = txtFecha.Left
.Width = 210
.Height = 130
End With
End Sub
Prueba y me cuentas.
Lo había intentado pero no me da resultado lo que me dijiste
Te paso el código modificado
*****************
Option Explicit
Dim datFecha As Date
Dim txtCual As MSForms.TextBox ' aquí se guarda que textbox le corresponde
Dim ImgCual As Image
Private Sub Calendario_DblClick()
Dim intRes As Integer
If datFecha > Calendario.Value Then
intRes = MsgBox("La fecha seleccionada es anterior" & vbCrLf & vbCrLf & _
"¿Deseas continuar", vbYesNo + vbQuestion, "Fecha anterior")
If intRes = vbYes Then
txtCual.Text = Format(Calendario.Value, "dd-mmm-yyyy")
ImgCual.SpecialEffect = fmSpecialEffectRaised
Calendario.Visible = False
End If
Else
txtCual.Text = Format(Calendario.Value, "dd-mmm-yyyy")
ImgCual.SpecialEffect = fmSpecialEffectRaised
Calendario.Visible = False
End If
End Sub
Private Sub Calendario_Exit(ByVal Cancel As MSForms.ReturnBoolean)
imgFecha.SpecialEffect = fmSpecialEffectRaised
Calendario.Visible = False
End Sub
Private Sub imgFecha_Click()
If Calendario.Visible Then
txtFecha.Text = Format(Calendario.Value, "dd-mmm-yyyy")
Calendario.Visible = False
imgFecha.SpecialEffect = fmSpecialEffectRaised
Else
If IsDate(txtFecha.Text) Then datFecha = CDate(txtFecha.Text)
imgFecha.SpecialEffect = fmSpecialEffectSunken
' asigna a las variables de control, los controles que corresponden
Set txtCual = txtFecha
Set ImgCual = imgFecha
Calendario.Visible = True
Calendario.ZOrder
Calendario.SetFocus
End If
End Sub
Private Sub imgFin_Click()
If Calendario.Visible Then
txtFin.Text = Format(Calendario.Value, "dd-mmm-yyyy")
Calendario.Visible = False
imgFin.SpecialEffect = fmSpecialEffectRaised
Else
If IsDate(txtFin.Text) Then datFecha = CDate(txtFin.Text)
imgFin.SpecialEffect = fmSpecialEffectSunken
' asigna a las variables de control, los controles que corresponden
Set txtCual = txtFin
Set ImgCual = imgFin
With Calendario
.Top = txtFin.Top + txtFin.Height
.Left = txtFin.Left
.Visible = True
.ZOrder
.SetFocus
End With
End If
End Sub
Private Sub imgInicio_Click()
If Calendario.Visible Then
txtInicio.Text = Format(Calendario.Value, "dd-mmm-yyyy")
Calendario.Visible = False
imgInicio.SpecialEffect = fmSpecialEffectRaised
Else
If IsDate(txtInicio.Text) Then datFecha = CDate(txtInicio.Text)
imgFecha.SpecialEffect = fmSpecialEffectSunken
' asigna a las variables de control, los controles que corresponden
Set txtCual = txtInicio
Set ImgCual = imgInicio
With Calendario
.Top = txtInicio.Top + txtInicio.Height
.Left = txtInicio.Left
.Visible = True
.ZOrder
.SetFocus
End With
End If
End Sub
Private Sub txtFecha_Change()
End Sub
Private Sub UserForm_Initialize()
With Calendario
.Value = Now()
'txtFecha.Text = Format(.Value, "dd-mmm-yyyy")
'txtInicio.Text = Format(.Value, "dd-mmm-yyyy")
'txtFin.Text = Format(.Value, "dd-mmm-yyyy")
.Top = txtFecha.Top + txtFecha.Height
.Left = txtFecha.Left
.Width = 210
.Height = 130
End With
End Sub
****************
Prueba y me cuentas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas