MsgBox con pausas para llenado de formulario
Quisiera solicitar su apoyo para resolver una consulta sobre los MsgBox.
He estado desarrollando un UserForm para introducir datos en una planilla excel con respecto a transacciones de materiales. Dentro de este UserForm incorporé un Commandbuton llamado "ACEPTAR". El código de este botón lo adjunto a continuación:
Private Sub AceptarButton1_Click()
Dim ifila As Long
Dim x As Control
'Encontrar ultima fila vacía
ifila = Worksheets(2).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
'Copiar datos de formulario a planilla
Worksheets(2).Cells(ifila, 1).Value = LabelCodigo
Worksheets(2).Cells(ifila, 2).Value = Date
Worksheets(2).Cells(ifila, 3).Value = Time
Worksheets(2).Cells(ifila, 4).Value = TextBoxCantidad
Worksheets(2).Cells(ifila, 5).Value = LabelUnidad
'Copiar datos de los OptionButton a la planilla
For Each x In Frame1.Controls
If x.Value = True Then
Worksheets(2).Cells(ifila, 6).Value = x.Caption
End If
Next
'Forzar llenado completo de formulario
If ComboDescripcion = Empty Then
If MsgBox("Seleccione una descripción del material", vbRetryCancel + vbExclamation, "ERROR") = vbCancel Then
Unload TransaccionForm
PanelForm.Show
End If
End If
If TextBoxCantidad = Empty Then
If MsgBox("Ingrese cantidad", vbRetryCancel + vbExclamation, "ERROR") = vbCancel Then
Unload TransaccionForm
PanelForm.Show
End If
End If
End Sub
El problema que tengo es que al presionar el botón aceptar en el formulario, en caso que no tenga completo ningún campo en el formulario me aparecen los MsgBox, los cuales al presionar "Reintentar" aparece inmediatamente el siguiente MsgBox y así sucesivamente. Lo que intento hacer es que al aparecer el primer MsgBox indicando campo vacío y al presionar "Reintentar", no aparezca inmediatamente el siguiente MsgBox sino que me de el tiempo de llenar el campo faltante y que luego al volver a presionar "Aceptar" me aparezca el siguiente MsgBox indicando el siguiente campo vacío.
He estado desarrollando un UserForm para introducir datos en una planilla excel con respecto a transacciones de materiales. Dentro de este UserForm incorporé un Commandbuton llamado "ACEPTAR". El código de este botón lo adjunto a continuación:
Private Sub AceptarButton1_Click()
Dim ifila As Long
Dim x As Control
'Encontrar ultima fila vacía
ifila = Worksheets(2).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
'Copiar datos de formulario a planilla
Worksheets(2).Cells(ifila, 1).Value = LabelCodigo
Worksheets(2).Cells(ifila, 2).Value = Date
Worksheets(2).Cells(ifila, 3).Value = Time
Worksheets(2).Cells(ifila, 4).Value = TextBoxCantidad
Worksheets(2).Cells(ifila, 5).Value = LabelUnidad
'Copiar datos de los OptionButton a la planilla
For Each x In Frame1.Controls
If x.Value = True Then
Worksheets(2).Cells(ifila, 6).Value = x.Caption
End If
Next
'Forzar llenado completo de formulario
If ComboDescripcion = Empty Then
If MsgBox("Seleccione una descripción del material", vbRetryCancel + vbExclamation, "ERROR") = vbCancel Then
Unload TransaccionForm
PanelForm.Show
End If
End If
If TextBoxCantidad = Empty Then
If MsgBox("Ingrese cantidad", vbRetryCancel + vbExclamation, "ERROR") = vbCancel Then
Unload TransaccionForm
PanelForm.Show
End If
End If
End Sub
El problema que tengo es que al presionar el botón aceptar en el formulario, en caso que no tenga completo ningún campo en el formulario me aparecen los MsgBox, los cuales al presionar "Reintentar" aparece inmediatamente el siguiente MsgBox y así sucesivamente. Lo que intento hacer es que al aparecer el primer MsgBox indicando campo vacío y al presionar "Reintentar", no aparezca inmediatamente el siguiente MsgBox sino que me de el tiempo de llenar el campo faltante y que luego al volver a presionar "Aceptar" me aparezca el siguiente MsgBox indicando el siguiente campo vacío.
1 Respuesta
Respuesta de Eduardo Saligari
1