¿Tengo algo mal en el código de Microsoft Excel?

Hola experto
Hice lo que me recomendaste pero le agregue una condicional al código, pero ahora no sale el resultado en el textbox4... Creo que algo esta mal en el código... Podrías ayudarme... Muchas gracias
Private Sub CALCULAR_Click()
If IsNumeric(TextBox1) And TextBox3 = "" Then
TextBox3.BackColor = vbGreen
MsgBox "FALTAN COMPLETAR DATOS"
TextBox3.SetFocus
Exit Sub
Dim Proporcion As Single
Dim valor2, valor3, valor4 As Single
valor2 = Application.WorksheetFunction.VLookup(Val(TextBox1), Range("Harinas"), 4, 0)
valor3 = TextBox3
valor4 = valor2 * valor3 * 0.05
TextBox2 = valor2
TextBox4 = valor4
End If
End Sub
Respuesta
1
Casi te quedaba. Te falto una sentencia ELSE:
-
Private Sub CALCULAR_Click()
 If IsNumeric(TextBox1) And TextBox3 = "" Then
  TextBox3.BackColor = vbGreen
  MsgBox "FALTAN COMPLETAR DATOS"
  TextBox3.SetFocus
' Exit Sub
 Else
  Dim Proporcion As Single
  Dim valor2, valor3, valor4 As Single
  valor2 = Application.WorksheetFunction.VLookup(Val(TextBox1), Range("Harinas"), 4, 0)
  valor3 = TextBox3
  valor4 = valor2 * valor3 * 0.05
  TextBox2 = valor2
  TextBox4 = valor4
 End If
End Sub
-
El Exit Sub que te señalo, en realidad está de más, pues no ejecutas nada entre el End If y el End Sub, que es lo que se brincaría en todo caso; así que puedes eliminarlo.
-
Gracias amigo por la ayuda... ahora he agregado 1 fila de 4 textbox más al formulario y he colocado este código al botón calcular, pero cuando solo coloco datos a la primera fila y no a la segunda, hago click y sale depurar y como que me obliga a colocar datos en ambas filas como se puede hacer para corregir este error... gracias
Private Sub CALCULAR_Click()
 If IsNumeric(TextBox1) And TextBox3 = "" Then
  TextBox3.BackColor = vbGreen
  MsgBox "FALTAN COMPLETAR DATOS"
  TextBox3.SetFocus
 Else
  Dim Proporcion As Single
  Dim valor2, valor3, valor4 As Single
  valor2 = Application.WorksheetFunction.VLookup(Val(TextBox1), Range("Harinas"), 4, 0)
  valor3 = TextBox3
  valor4 = valor2 * valor3 * 0.05
  TextBox2 = valor2
  TextBox4 = valor4
 End If
If IsNumeric(TextBox5) And TextBox7 = "" Then
  TextBox7.BackColor = vbGreen
  MsgBox "FALTAN COMPLETAR DATOS"
  TextBox7.SetFocus
 Else
  Dim Proporcion As Single
  Dim valor5, valor6, valor7 As Single
  valor5 = Application.WorksheetFunction.VLookup(Val(TextBox1), Range("Harinas"), 4, 0)
  valor6 = TextBox7
  valor7 = valor5 * valor6 * 0.05
  TextBox6 = valor5
  TextBox8 = valor7
 End If
End Sub
Regla:
-
NO DECLARA una variable más de una vez dentro de un mismo SUB:
-
Private Sub CALCULAR_Click()
 If IsNumeric(TextBox1) And TextBox3 = "" Then
  TextBox3.BackColor = vbGreen
  MsgBox "FALTAN COMPLETAR DATOS"
  TextBox3.SetFocus
 Else
  Dim Proporcion As Single
  Dim valor2, valor3, valor4 As Single
  valor2 = Application.WorksheetFunction.VLookup(Val(TextBox1), Range("Harinas"), 4, 0)
  valor3 = TextBox3
  valor4 = valor2 * valor3 * 0.05
  TextBox2 = valor2
  TextBox4 = valor4
 End If
If IsNumeric(TextBox5) And TextBox7 = "" Then
  TextBox7.BackColor = vbGreen
  MsgBox "FALTAN COMPLETAR DATOS"
  TextBox7.SetFocus
 Else
  Dim Proporcion As Single
  Dim valor5, valor6, valor7 As Single
  valor5 = Application.WorksheetFunction.VLookup(Val(TextBox1), Range("Harinas"), 4, 0)
  valor6 = TextBox7
  valor7 = valor5 * valor6 * 0.05
  TextBox6 = valor5
  TextBox8 = valor7
 End If
End Sub
-
Sería bueno que calificaras y luego preguntaras, así nos apoyamos ambos.
.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas