Inicio > Microsoft Excel > elsamatilde > Si dejo TextBox de formulario en blanco

Si dejo TextBox de formulario en blanco

Experto:
Usuario:
Fecha: 09/09/2008
Valoración: (4,00 sobre 5) Categoría: Microsoft Excel
07/09/2008
enryke11, usuario preguntando en Microsoft Excel
Usuario
Tengo este codigo en un formulario de excel:
Private Sub TextBox1_Change()
largo_entrada = Len(Me.TextBox1)
Select Case largo_entrada
Case 2
Me.TextBox1.Value = Me.TextBox1.Value & "/"
Case 5
Me.TextBox1.Value = Me.TextBox1.Value & "/2008"
TextBox2.SetFocus
End Select
End Sub
Pero quiero que si no escribo nada en este Textbox1 que me aparezca la palabra "Anulada" además en la fecha que solo tenga que escribir el día y que el mes y año lo obtenga automaticamente de la fecha del sistema, eso si se pudiera y si no pues que si me equivoco a la hora de ingresar el formato de fecha que me envie un mensaje "Fecha mal ingresada" Ej: 02/99/2008 o 02/09/208; y que se quede en el TextBox1 para poder corregir el error.
Espero me entiendan que es lo que deseo hacer y de antemano agradezco su pronta ayuda Att. Enrique Castro
07/09/2008
enryke11, experto respondiendo en Microsoft Excel
Experto
Hola:
Hay muchas opciones para controlar el ingreso de fechas pero voy a optar por tu idea de ingresar solamente el día.
Entonces esto será para el textbox que recibirá esa información:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1 < 1 Or TextBox1 > 31 Then Cancel = True
End Sub
Esto hará que no puedas avanzar si el ingreso no corresponda a un día de mes.

Luego al momento de pasarlo o allí mismo armás la fecha:
miFecha = val(textbox1) & "/" & Month(date) & "/" & Year(date)
Range("B2") = CDate(miFecha)  'ejemplo que mueve la fecha a la celda B2

Saludos
Elsa

http://es.geocities.com/lacibelesdepunilla/macros
07/09/2008
enryke11, experto respondiendo en Microsoft Excel
Experto
Quizás prefieras la rutina que sigue, que contempla que puedas dejar el control vacío:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1 = "" Then   'si dejas el control vacío colocará Anulado en la celda
ActiveCell = "Anulada"
ElseIf TextBox1 < 1 Or TextBox1 > 31 Then  'sinó debes ingresar día
Cancel = True
Else    'si está correcto lo transforma en fecha
miFecha = Val(TextBox1) & "/" & Month(Date) & "/" & Year(Date)
ActiveCell = CDate(miFecha)
End If
End Sub

Probalo y comentame si te resultó

Saludos
Elsa

http://es.geocities.com/lacibelesdepunilla/macros
09/09/2008
enryke11, usuario preguntando en Microsoft Excel
Usuario
Muy Bien. Me ha sido de gran utilidad
Enlaces patrocinados