Tengo un formulario que no debe executarse si se producen condiciones con dos textbox, pero se me produce un error

Tengo un formulario que no debe executarse si se producen condiciones con dos textbox, pero se me produce un error incomprensible.

Para poder salvar el formulario debe cumplir como condiciones que :

Si textbox2.Value >=textbox6.Value then 

no se debe ejecutar la operacion, tambien:

Si Textbox3.Value >=textbox7.Value tampoco se deb ejecutar la operacion.

El problema es que:

Textbox3.Value=9610 y Textbox7. Value=11700 como se puede ver el Textbox7 es mayor que el Textbox3, por lo tanto debería ejecutarse el formulario, pero me dice que no se puede ejecutar porque el Textbox7.value no es mayor que Textbox3.Value.

El textbox7.Value=11700 el Textbox3.Value=9610 es decir textbox7. Value>textbox3.Value y sin embargo me da ese error, al poner otros numeros no se me poduce  ese error

el codigo de salvar es el siguiente:

Private Sub CommandButton1_Click()
Dim Son_Dolu_Satir, Bos_Satir As Long, ver As Long

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False

If TextBox2.Value > TextBox6.Value Then
MsgBox "Die alter Zählerstand (Betriebsstunden) muss kleiner oder gleich als die neuer Zählerstand. Die Daten muss korrigiert werden.", vbInformation, ""
TextBox1 = Empty
TextBox2 = Empty
TextBox6 = Empty

TextBox2.SetFocus

Exit Sub
End If
If TextBox3.Value > TextBox7.Value Then
MsgBox "Die alter Zählerstand (Pelletsverbrauch) muss kleiner oder gleich als die neuer Zählerstand. Die Daten muss korrigiert werden.", vbInformation, ""
TextBox1 = Empty
TextBox3 = Empty
TextBox7 = Empty
TextBox3.SetFocus
Exit Sub
End If
If TextBox2.Value = "" Then
MsgBox "Please enter a alter Zähler Betriebstunden.", vbExclamation, ""
TextBox2.SetFocus
Exit Sub
End If
If TextBox3.Value = "" Then
MsgBox "Please enter a alter Zähler Peletsverbrauch.", vbExclamation, ""
TextBox3.SetFocus
Exit Sub
End If
If TextBox6.Value = "" Then
MsgBox "Please enter a neuer Zähler Betriebstunden.", vbExclamation, ""
TextBox6.SetFocus
Exit Sub
End If
If TextBox7.Value = "" Then
'MsgBox "Please enter neuer Zähler Pelletsverbrauch.", vbExclamation, ""
TextBox7.SetFocus
Exit Sub
End If
If Me.TextBox1.Value = "" Then
Call MsgBox("The fields are not complete", vbInformation, "Edit Contact")
Exit Sub
End If

For ver = 2 To Cells(Rows.Count, 1).End(xlUp).Row

If Cells(ver, "B") = TextBox1 Then
MsgBox "This Datum,this Pellets is already registered !", vbInformation, ""
TextBox1 = Empty
TextBox6 = Empty
TextBox7 = Empty
Exit Sub: End If: Next

Son_Dolu_Satir = Sheets("Data").Range("A65536").End(xlUp).Row
Bos_Satir = Son_Dolu_Satir + 1
Sheets("Data").Range("A" & Bos_Satir).Value = _
Application.WorksheetFunction.Max(Sheets("Data").Range("A:A")) + 1
Sheets("Data").Range("B" & Bos_Satir).Value = TextBox1.Text 'DATUM
Sheets("Data").Range("C" & Bos_Satir).Value = TextBox6.Text 'alter Zähler Betriebstunden
Sheets("Data").Range("D" & Bos_Satir).Value = TextBox7.Text 'alter Zähler PELLETSVERBRAUCH
Sheets("Data").Range("w" & Bos_Satir).Value = 1700 ' Pelets limit um die behälder zu leeren
' Sheets("Data").Range("F" & Bos_Satir).Value = TextBox5.Text
Sheets("Data").Range("G" & Bos_Satir).Value = TextBox2.Value
Sheets("Data").Range("H" & Bos_Satir).Value = TextBox32.Value
'Sheets("Data").Range("I" & Bos_Satir).Value = TextBox8.Text
Sheets("Data").Range("O" & Bos_Satir).Value = TextBox17.Text
Sheets("Data").Range("P" & Bos_Satir).Value = TextBox18.Text

2 Respuestas

Respuesta
1

El Excel no es lo mío, prácticamente sólo sé su nombre, pero por si te puede dar una idea. Me parece entender que la única forma de que se ejecute algo es que texto2 sea menor que texto6 y que texto3 sea menor que texto7. Si tengo un formulario con esos cuatro cuadros de texto, y le voy a decir que si se cumple esa condición ejecute algo, en este caso, que al cuadro de texto Texto, se ponga amarillo.

Puedes ver que texto2 es menor que texto6 y texto3 es menor que texto7. Si pulso el botón, aunque la instrucción se puede poner en cualquier otro evento, como se cumplen las condiciones

Por el contrario, si, por ejemplo, texto2 es mayor que texto6, como en la imagen

Cuando pulso el botón

En este caso, el código del evento al Hacer clic del botón es

Private Sub Comando64_Click()
If Texto2 < Texto6 And Texto3 < Texto7 Then
Texto8.BackColor = vbYellow
Else
MsgBox "No hago nada porque no se cumple la condición", vbOKOnly + vbExclamation, "Otro día quizá, pero hoy no"
End If
End Sub

Es decir, sólo tengo en cuenta la única posibilidad que se tendría que cumplir para ejecutar algo.

En tu caso, después de Msgbox... podrías poner lo de

Exit Sub

Respuesta
1

Los datos contenidos en los textbox son textox, entonces hay que convertir esos textos a valores numéricos, puedes utilizar la función Val o CDbl

Prueba así:

If Val(textbox2.Value) >= Val(textbox6.Value) then 
If Val(Textbox3.Value) >= Val(textbox7.value) Then

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas