Como crear una condición en un textbox

Debo crear una condición en esta Macro en el TextBox8 ( se ingresa una fecha) ya que en muchas ocasiones no debo ingresar dicha fecha, y si eso sucede no me permite seguir, como lograr para que esto no suceda

Private Sub CommandButton2_Click()
Dim wsDestino As Worksheet
Dim ultimaFila As Long
Dim TextBox1 As MSForms.TextBox ' Asume TextBox1, TextBox2, TextBox3
Dim TextBox2 As MSForms.TextBox
Dim TextBox3 As MSForms.TextBox
Dim TextBox4 As MSForms.TextBox
Dim TextBox5 As MSForms.TextBox
Dim TextBox6 As MSForms.TextBox
Dim TextBox7 As MSForms.TextBox
Dim TextBox8 As MSForms.TextBox
Dim TextBox9 As MSForms.TextBox
Dim TextBox10 As MSForms.TextBox
' Define tus TextBoxes y la Hoja de Destino
Set wsDestino = ThisWorkbook.Sheets("Datos") ' ¡Cambia el nombre!
' Asegúrate de que los nombres coincidan con los de tu formulario
Set TextBox1 = FrmDatos.TextBox1
Set TextBox2 = FrmDatos.TextBox2
Set TextBox3 = FrmDatos.TextBox3
Set TextBox4 = FrmDatos.TextBox4
Set TextBox5 = FrmDatos.TextBox5
Set TextBox6 = FrmDatos.TextBox6
Set TextBox7 = FrmDatos.TextBox7
Set TextBox8 = FrmDatos.TextBox8
Set TextBox9 = FrmDatos.TextBox9
Set TextBox10 = FrmDatos.TextBox10
' 1. Encontrar la última fila con datos en la columna A (o la que uses como referencia)
ultimaFila = wsDestino.Cells(wsDestino.Rows.Count, "A").End(xlUp).Row + 1
' El +1 es para ir a la siguiente fila vacía [2, 10].

' 2. Asignar los valores de los TextBoxes a las celdas
wsDestino.Cells(ultimaFila, 2).Value = CDate(TextBox1.Text) ' Columna B (1)
wsDestino.Cells(ultimaFila, 1).Value = TextBox2.Value ' Columna A (2)
wsDestino.Cells(ultimaFila, 3).Value = TextBox3.Value ' Columna C (3)
wsDestino.Cells(ultimaFila, 4).Value = TextBox4.Value ' Columna D (4)
wsDestino.Cells(ultimaFila, 5).Value = TextBox5.Value ' Columna E (5)
wsDestino.Cells(ultimaFila, 6).Value = TextBox6.Value ' Columna F (6)
wsDestino.Cells(ultimaFila, 7).Value = TextBox7.Value ' Columna G (7)
wsDestino.Cells(ultimaFila, 8).Value = CDate(TextBox8.Text) ' Columna H (8)
wsDestino.Cells(ultimaFila, 9).Value = TextBox9.Value ' Columna I (9)
wsDestino.Cells(ultimaFila, 10).Value = TextBox10.Value ' Columna J (10)
MsgBox "Datos Guardados Exitosamente", , "DONACIONES TUCUMAN"
' 3. (Opcional) Limpiar los TextBoxes después de guardar
TextBox1.Value = ""
'TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""
TextBox6.Value = ""
TextBox7.Value = ""
TextBox8.Value = ""
TextBox9.Value = ""
TextBox10.Value = ""
TextBox1.SetFocus ' Poner el cursor en el primer Textbox [6].

Unload Me

End Sub

Respuesta
2

El error frecuente, al utilizar funciones de conversión (Cdate, Cdbl, Val, etc) es considerar que el control textbox siempre tendrá contenido válido.

Ahora, en tu caso con el TextBox8, cuando queda vacío presenta error el uso de Cdate.

Reemplazá esa línea por la siguiente:

If IsDate(Textbox8) then wsDestino.Cells(ultimaFila, 8) = CDate(TextBox8) ' Columna H (8)

Atención: Cuando se trata de 'modificar' un registro seguramente si la fecha no es válida tendrás que limpiar esa celda de su contenido anterior, entonces usá estas instrucciones:

If IsDate(TextBox8) Then
wsDestino.Cells(ultimaFila, 8) = CDate(TextBox8) ' Columna H (8)
Else
wsDestino.Cells(ultimaFila, 8) = ""
End If

Más ejemplos de Funciones de conversión en:

Cap 9 de los manuales 500Macros (en sus 2 versiones)

Más ejemplos de cómo trabajar con TextBox (otras funciones de conversión) en:

Videos Nºs 73 y 74 : https://www.youtube.com/watch?v=tlJ1pNk9bIw&list=PLrhlyizWZzOERwRMxIIy-BTP-CyXh_K5N&index=19 

Video Nº  38  ¿Textos o valores numéricos? : https://www.youtube.com/watch?v=iQMnisNMEjM&list=PLrhlyizWZzOERwRMxIIy-BTP-CyXh_K5N&index=56 

1 respuesta más de otro experto

Respuesta
1

I. Hola Compañero, por mi parte no sé realizar esta operación pero he visto una información y una serie de respuestas anteriores muy cercanas creo a su consulta, y deseaba probar suerte por si aún no las hubiese visto y pudiesen serle de alguna utilidad.

Si lo desea podría dirigir su consulta a un experto en caso de que no reciba pronto una respuesta.

Le ruego me disculpe por todas las molestias de tanta lectura y la forma de responderle. Ánimo. Felices Fiestas.


https://www.mrexcel.com/board/threads/run-a-macro-if-any-of-textboxes-change-vba.1147730/ 
https://es.stackoverflow.com/questions/542883/c%C3%B3mo-condicionar-un-evento-de-textbox-de-un-userform-para-que-ocurra-una-sola-o

https://stackoverflow.com/questions/20991539/how-to-add-textboxes-labels-and-buttons-dynamically-at-runtime-in-vb

https://stackoverflow.com/questions/28897913/add-textboxes-dynamically-in-vb-net

https://www.vbforums.com/showthread.php?602660-How-to-dynamically-create-TextBox-in-VB-NET

https://stackoverflow.com/questions/69577390/how-do-i-use-textbox-controls-in-vb-class

https://foro.todoexcel.com/threads/aplicar-una-condicion-a-un-textbox.19459/

https://www-exceldemy-com.translate.goog/create-a-search-box-in-excel-with-vba/?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc

https://www.mrexcel.com/board/threads/conditional-formatting-of-text-boxes-using-vba.1226645/

https://www.vbatotal.com/leccion-7-automatizar-el-formato-de-una-celda-con-macros/

https://excelsignum.wordpress.com/2013/07/17/macro-para-validar-datos-numericos-en-un-textbox/

https://stackoverflow.com/questions/8514760/text-box-prompt-text-in-excel-vba

http://www.vbaexpress.com/forum/showthread.php?50388-Macro-for-Conditional-Text

https://www.mrexcel.com/board/threads/dynamically-create-and-fill-value-of-userform-textbox-in-vba.1138468/

https://ayudaexcel.com/foro/topic/46342-condiciones-para-valor-ingresado-en-textbox/

https://ayudaexcel.com/foro/topic/36378-ejecutar-macro-en-textbox-con-condicion

https://stackoverflow.com/questions/41741513/create-a-conditional-formating-macro-for-text-value-on-excel/41741988#41741988

https://stackoverflow.com/questions/25894856/creating-a-textbox-to-trigger-a-vba-formula

https://www.mrexcel.com/board/threads/run-code-only-if-textbox-has-a-value.181684/

https://forum.keyboardmaestro.com/t/help-creating-condition-in-text-box/18520

https://www.youtube.com/watch?v=Rue1Up0uSGo

https://stackoverflow.com/questions/23689878/vba-excel-if-statement-based-on-text-box-entry

https://www-access--programmers-co-uk.translate.goog/forums/threads/setting-a-condition-in-a-macro-lookin-at-a-check-box-in-a-form.204322/?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc

https://www.mrexcel.com/board/threads/vba-create-textbox-and-fill-it-with-text-out-of-a-function.352135/

https://www.excelforum.com/excel-programming-vba-macros/1022161-conditional-formatting-userform-textbox-based-on-textbox-value.html

https://www.excelforum.com/excel-programming-vba-macros/1048678-conditional-formatting-of-the-textbox-in-a-userform-can-this-be-done.html

https://stackoverflow.com/questions/74432369/how-to-create-change-event-for-dynamically-created-textbox-in-vba-userform

https://www.exceldemy.com/excel-vba-add-text-to-textbox/

https://www.vbforums.com/showthread.php?345162-How-do-I-dynamically-create-textboxes-in-a-custom-word-form-Resolved

https://www.vbforums.com/showthread.php?669476-Text-Box-in-Active-Cell

https://www.mrexcel.com/board/threads/conditional-format-a-textbox.1224845/

https://stackoverflow.com/questions/57339978/how-to-write-an-if-then-else-statement-for-the-value-inside-of-a-text-box

https://eltiotech.com/cuadro-de-texto-textobox-en-vba/

¡Gracias! Muchas felicidades para vos y familia en estas fiestas

Saludos, JC

I. Buenas Compañero, muchas gracias :) e igualmente, muchas felicidades para usted y los suyos en estas fiestas que ahora comienzan.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas