Pregunta para Luis Mondelo!

Luis. Ahora ya tengo la macro con el botón "GUARDAR" que funciona perfectamente. Pero ahora necesito que el botón guardar se active (osea que funcione) si están los textBox completos. Sino están todos los TextBok completos que te salga un msgbox que diga por ejemplo "Tiene que completar todos los datos solicitados antes de guardar".

Sera posible. Aca te paso la macro completa!!. Que se agrega o como se le grega??

Private Sub CommandButton1_Click() Sheets("EGRESOS ALMACEN").Select Range("a3").Select Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select

Loop

ActiveCell = ComboBox1 ActiveCell.Offset(0, 1).Select ActiveCell = TextBox5 ActiveCell.Offset(0, 1).Select ActiveCell = TextBox3 ActiveCell.Offset(0, 1).Select ActiveCell.Value = CDbl(TextBox4) ActiveCell.Offset(0, 1).Select ActiveCell = TextBox6 ActiveCell.Offset(0, 1).Select

Sheets("EGRESOS ALMACEN-Conserv").Select Range("a3").Select Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select

Loop

ActiveCell = ComboBox1 ActiveCell.Offset(0, 1).Select ActiveCell = TextBox5 ActiveCell.Offset(0, 1).Select ActiveCell = TextBox3 ActiveCell.Offset(0, 1).Select ActiveCell.Value = CDbl(TextBox4) ActiveCell.Offset(0, 1).Select ActiveCell = TextBox6 ActiveCell.Offset(0, 1).Select

Sheets("Imprimir Retiros Almacen").Select Range("b9").Select Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select

Loop

ActiveCell = TextBox5 ActiveCell.Offset(0, 1).Select ActiveCell = ComboBox1 ActiveCell.Offset(0, 1).Select ActiveCell.Value = CDbl(TextBox4) ActiveCell.Offset(0, 1).Select ActiveCell = TextBox6 ActiveCell.Offset(0, 1).Select

Sheets("ALMACEN").Select

MsgBox "Producto descontado del STOCK y listo para su IMPRESIÓN"

ComboBox1 = Empty TextBox5 = Empty TextBox4 = Empty TextBox6 = Empty TextBox3 = Empty

End Sub

1 respuesta

Respuesta
1

Pon este código al principio de la macro, es decir, quedaría asi:

Esta macro revisará que todos los textbox tengan valores y si alguno no lo tiene saltará la alarma diciendo que faltan datos y se posicionará en dicho textbox.

Private Sub CommandButton1_Click()
For Each caja In Me.Controls
If TypeName(caja) = "TextBox" Then
If caja.Value = "" Then
MsgBox "no ha completado todos los campos, revíselos por favor"
caja.SetFocus
Exit Sub
End If
End If
Next
...
...
...
...
...
End Sub

LUIS ahi la copie tal cual me dijiste y me tira en mensaje de error que dice: ERROR 13

NO COINCIDEN LOS TIPOS!!

te hago una aclaración, mira que no hay solamente TextBox, fijate la macro que pase también tiene ComboBox. No se si puede ser eso!!!

Pues a mi me funciona perfectamente. Necesitaría ver el archivo. Mándamelo

Luis es muy grande el archivo y no empasa por mail. Ahi le modifique una cosa y ya no me tira ese error. ahora me dice ERROR 424 EN TIEMPO DE EJECUCIÓN. SE REQUIERE UN OBJETO.

Y cuando pongo depurar me sale la macro, y en un sector de la macro (que es lo que esta en negrita y subrayado) me marca en amarillo esto:

Private Sub CommandButton1_Click()
For Each caja In Me.Controls If TypeName(caja) = "Textbox" Then If caja.Value = "" Then MsgBox "No ha completado todos los campos, revíselos por favor" caja.SetFocus Exit Sub End If End If Next
Sheets("EGRESOS ALMACEN").Select Range("a3").Select Do While Not IsEmpty(ActiveCell) AciveCell.Offset(1, 0).Select

Es un error de escritura. Esa línea en negrita tiene que estar así:

activecell.offset(1,0).select

(Le falta la t)

Hola Luis!!. Mira ya le puse la "t" que falta. Pero ahora me sale otro error que dice: Error 13 en tiempo de ejecución. NO Coinciden los tipos.

Hago clic en depurar y me marca en amarillo esta parte de la macro:

ActiveCell.Value = CDbl(TextBox4)

Me señala como que estás haciendo operaciones con tipos de datos incompatibles!!. Que sera??

Private Sub CommandButton1_Click()

For Each caja In Me.Controls If TypeName(caja) = "Textbox" Then If caja.Value = "" Then MsgBox "No ha completado todos los campos, revíselos por favor" caja.SetFocus Exit Sub End If End If Next

Sheets("EGRESOS ALMACEN").Select Range("a3").Select Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select

Loop

ActiveCell = ComboBox1 ActiveCell.Offset(0, 1).Select ActiveCell = TextBox5 ActiveCell.Offset(0, 1).Select ActiveCell = TextBox3 ActiveCell.Offset(0, 1).Select ActiveCell.Value = CDbl(TextBox4) ActiveCell.Offset(0, 1).Select ActiveCell = TextBox6 ActiveCell.Offset(0, 1).Select

Sheets("EGRESOS ALMACEN-Conserv").Select Range("a3").Select Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select

Loop

ActiveCell = ComboBox1 ActiveCell.Offset(0, 1).Select ActiveCell = TextBox5 ActiveCell.Offset(0, 1).Select ActiveCell = TextBox3 ActiveCell.Offset(0, 1).Select ActiveCell.Value = CDbl(TextBox4) ActiveCell.Offset(0, 1).Select ActiveCell = TextBox6 ActiveCell.Offset(0, 1).Select

Sheets("Imprimir Retiros Almacen").Select Range("b9").Select Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select

Loop
ActiveCell = TextBox5 ActiveCell.Offset(0, 1).Select ActiveCell = ComboBox1 ActiveCell.Offset(0, 1).Select ActiveCell.Value = CDbl(TextBox4) ActiveCell.Offset(0, 1).Select ActiveCell = TextBox6 ActiveCell.Offset(0, 1).Select

Sheets("ALMACEN").Select
MsgBox "Producto descontado del STOCK y listo para su IMPRESIÓN"

ComboBox1 = Empty TextBox5 = Empty TextBox4 = Empty TextBox6 = Empty TextBox3 = Empty

End Sub

Se supone entonces que en el textbox4 hay números ¿verdad?

Si no los hubiera, daría error.

Compruébalo y me cuentas.

HOLA LUIS: Claro, justamente, si en el textBox4 no se coloca un numero, QUE ME SALGA EL MENSANJE de MSGBOX. Pero no lo hace. Me tira el error que te comento.

Igualmente, yo quiero, que cualquier textBox o ComboBox que esta vacío me salte el mensaje de MSGBOX. Todos los campos a completar son obligatorios. Si todos están completos que el botón se active y haga la macro.

Daniel, al pegar el código en la web se ha desconfigurado y no puedo analizar nada. Me lo tendrás que mandar. ¿Tienes alguna nube para mandármelo?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas