Error al guardar datos con formulario en celdas cuando algún textbox esta vacío

Tengo un archivo donde llevo inventarios y las capturas las hago con un formulario que contiene varios cuadros de texto, el error me aparece cuando dejo en blanco algún cuadro de texto ya que si relleno todos los cuadros de texto no me da ningún error.

Me podrían ayudar con esto... Anexo imágenes

Gracias

2 respuestas

Respuesta
3

Cuando utilizás funciones, como Cdate, CDbl o en este caso FormatNumber siempre tendrás que evaluar si el control no está vacío.

Por ej:  

If TxtFecha <> "" Then Cells(otroRegistro, 1).Value = CDate(TxtFecha)

Ahora, como todas tus instrucciones contienen una función, lo mejor será que coloques la instrucción On Error al inicio del pase, para no hacer la comparación en cada línea.

On Error Resume Next
Cells(otroRegistro, 1).Value = CDate(txtFecha)
Cells(otroRegistro, 3).Value = FormatNumber(TextBox1.Value)
'el resto de las líneas

De todos modos revisa si FormatNumber es lo que necesitas??

Sdos.

Elsa

http://aplicaexcel.com

Respuesta
1

Algunas recomendaciones a tu código:

1. Si haces referencia a la hoja, no es necesario hacerla visible:

Hoja10. Cells(otroRegistro, 1).Value = CDate(Textfecha)

2. Si estás buscando la siguiente fila disponible, te recomiendo utilizar esta instrucción:

otroRegistro = Hoja10.Range("A" & Rows.Count).End(3).Row + 1

3. Si es necesario que los textbox tengan dato, puedes aplicar una validación, por ejemplo:

Private Sub Butto_Guardar_Click()
  Dim otroRegistro As Long
  '
  If Textfecha = "" Then
    MsgBox "Falta fecha"
    Textfecha.SetFocus
    Exit Sub
  End If
  If TextpiesasBla_medios = "" Then
    MsgBox "Falta TextpiesasBla_medios"
    TextpiesasBla_medios.SetFocus
    Exit Sub
  End If
  '
  otroRegistro = Hoja10.Range("A" & Rows.Count).End(3).Row + 1
  Hoja10.Cells(otroRegistro, 1).Value = CDate(Textfecha)
  Hoja10.Cells(otroRegistro, 7).Value = FormatNumber(TextpiesasBla_medios)
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas