formato de textbox

13/06/2005 - 23:45 por José A. Castrejón | Informe spam
Buenas tardes, tengo un formulario en una hoja de excel uno de los textbox
que el usuario captura es de fecha normalmente se captura "01/05/05" en donde
los primeros 2 digitos correspònden al dia.
Cuando el valor de ese textbox lo paso a una celda pasa como 5/01/05. como
pueden ver el dia se intercambia por el mes, y en una celda adyacente que
tengo en la hoja de calculo tengo la formula =Texto(c5,"mmmm"), y obviamente
me dice que el mes es enero, cuando debe ser mayo
Probe quitando el formato en la celda en donde cae el dato probe a ponerlo
como formato personalizado pero sigue igual. Cuando el usuario pasa del
textbox a otro hago lo siguiente :
Cells(NumFila, 3) = TextBox2.Text
Numfila es la variable en donde almaceno en que numero de fila debe ir el dato

gracias por su ayuda
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Application.ScreenUpdating = False
If TextBox2.Text <> "" And Not IsDate(TextBox2.Text) Then
MsgBox Prompt:="Formato de fecha incorrecto, el formato debe ser:
dd/mm/aaaa", _
Buttons:=vbCritical, _
Title:="Formato incorrecto"
Me.TextBox2.SelStart = 0
Me.TextBox2.SelLength = 8
Me.TextBox2.SetFocus
Cancel = True
Exit Sub
End If
End Sub

para pasar el dato del textbox a la celda hago :
Cells(NumFila, 3) = TextBox2.Text
Como puedo resolver esto ?
gracias por su ayuda

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
14/06/2005 - 03:17 | Informe spam
hola, José !

... formulario... uno de los textbox... de fecha normalmente se captura "01/05/05"
... los primeros 2 digitos corresponden al dia el valor de ese textbox... a una celda pasa como 5/01/05
... el dia se intercambia por el mes, y en una celda adyacente... la formula =Texto(c5,"mmmm")... dice que el mes es enero [...]
... Cuando el usuario pasa del textbox a otro hago lo siguiente: Cells(NumFila, 3) = TextBox2.Text [...]



[hasta donde se] cuando utilizas un [solo] textbox en formularios para 'trabajar/manejar'/... datos de fecha...
-> la aplicacion [vba] 'intenta' [primeramente] usar los convencionalismos de EUA ->mes/dia/año<- y/o...
-> [en una segunda instancia] 'asume' el formato de 'fecha corta' que se haya establecido en la configuracion regional
-> si fuera el caso de que se pretende aplicar formatos personalizados [y encima... 'distintos de lo anterior']...
1) indica/solicita/instruye/... al usuario para que use [al menos] 3 LITERALES [para 'la entrada' del mes]
y [solo para 'estar seguros'] 4 DIGITOS para 'la entrada' del año...
[de esta manera] el usuario podra 'optar' por dar entradas de fecha [p.e.] 1-may-2005 o... may-1-2005
-> 'el pase' a la celda podras 'asegurarlo' con la instruccion: Cells(NumFila, 3) = CDate(TextBox2) ;)
2) [definitivamente]... utilizar 3 DIFERENTES textboxes... 1=dia 2=mes 3=año [o en el orden que prefieras]
[creo que] la opcion mas 'segura' es la de los 3 textboxes :-(
ya que la primera [seguramente] va a fallar si la entrada del mes se indica en castellano EN una instalacion en ingles [p.e.] :-((

saludos,
hector.
Respuesta Responder a este mensaje
#2 José A. Castrejón
14/06/2005 - 15:57 | Informe spam
Gracias por tu respuesta, pensare en lo que me sugieres, sin embargo me llega
otra pregunta, si opto por la opcion de 3 textbox, como seria el argumento
para pasar a cell(Numfila,3) el dato de fecha pues tendria que concatenar los
3 datos; para que en excel quedara la entreada como dd-mes-año.
Ahora bien, este manejo de fecha es solo para vba ? pues si en una hoja de
excel introduzco 01/05/05 la fecha queda en dia/mes/año tal y como lo escribi
!!!!
Ojala y puedas ayudarme
Saludos desde México

"Héctor Miguel" escribió:

hola, José !

> ... formulario... uno de los textbox... de fecha normalmente se captura "01/05/05"
> ... los primeros 2 digitos corresponden al dia el valor de ese textbox... a una celda pasa como 5/01/05
> ... el dia se intercambia por el mes, y en una celda adyacente... la formula =Texto(c5,"mmmm")... dice que el mes es enero [...]
> ... Cuando el usuario pasa del textbox a otro hago lo siguiente: Cells(NumFila, 3) = TextBox2.Text [...]

[hasta donde se] cuando utilizas un [solo] textbox en formularios para 'trabajar/manejar'/... datos de fecha...
-> la aplicacion [vba] 'intenta' [primeramente] usar los convencionalismos de EUA ->mes/dia/año<- y/o...
-> [en una segunda instancia] 'asume' el formato de 'fecha corta' que se haya establecido en la configuracion regional
-> si fuera el caso de que se pretende aplicar formatos personalizados [y encima... 'distintos de lo anterior']...
1) indica/solicita/instruye/... al usuario para que use [al menos] 3 LITERALES [para 'la entrada' del mes]
y [solo para 'estar seguros'] 4 DIGITOS para 'la entrada' del año...
[de esta manera] el usuario podra 'optar' por dar entradas de fecha [p.e.] 1-may-2005 o... may-1-2005
-> 'el pase' a la celda podras 'asegurarlo' con la instruccion: Cells(NumFila, 3) = CDate(TextBox2) ;)
2) [definitivamente]... utilizar 3 DIFERENTES textboxes... 1=dia 2=mes 3=año [o en el orden que prefieras]
[creo que] la opcion mas 'segura' es la de los 3 textboxes :-(
ya que la primera [seguramente] va a fallar si la entrada del mes se indica en castellano EN una instalacion en ingles [p.e.] :-((

saludos,
hector.



Respuesta Responder a este mensaje
#3 Héctor Miguel
14/06/2005 - 20:15 | Informe spam
hola, José !

... si opto por la opcion de 3 textbox, como seria el argumento para pasar a cell(Numfila,3) el dato de fecha
... tendria que concatenar los 3 datos; para que en excel quedara la entrada como dd-mes-año.



=> p.e. Cells(NumFila, 3) = DateSerial(TextBox_año, TextBox_mes, TextBox_dia)
[sobra comentar que -de todos modos- habra que 'cuidar' que los textboxes 'sean' un dato 'valido'] :))
[la ventaja es que no hay necesidad de 'pre-ocuparse' por convencionalismos y regionalizaciones] ;)

... este manejo de fecha es solo para vba ? pues si en una hoja... introduzco 01/05/05 la fecha queda... tal y como lo escribi
!!!!



=> [hasta donde se]... es SOLO cuando se combina vba <-> textboxes :-(
[no 'afecta' para 'el resto' de operaciones aun por vba] ;)

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida