Problema con un formulario excel

Cada vez que ingreso un registro, a través de un formulario, tengo que cerrarlo y volver a abrirlo para poder introducir otro registro; y, así sucesivamente. Si lo intento registrar a continuación uno de otro, me sale una pantalla que dice:
"Valor de propiedad no válido"
Creo que pueda deberse a que los ComboBox del formulario los tengo con la propiedad MatchEntry en 1-fmMatchEntryComplete, con el propósito de obligar al usuario a que elija uno de los datos de la lista que se despliega del ComboBox y, así, impedir que pueda escribir cualquier cosa.
Esta la parte del código que utilizo para registrar los datos del UserForm:

Private Sub cmdRegistra_Click()
Dim Salir As Boolean, EstaHoja As String
For n = 1 To 2: If Me.Controls("textbox" & n) = "" Then Salir = True: GoTo Verifica
Next
For n = 1 To 4: If Me.Controls("combobox" & n) = "" Then Salir = True: GoTo Verifica
Next
If IsNull(DTPregistro) Then Salir = True
If IsNull(DTPentrega) Then Salir = True
Verifica:
If Salir Then MsgBox "FALTAN DATOS !!!": Exit Sub
Sheets("DATOS").Select
Sheets("INICIO").Range("E2") _
.FormulaR1C1 = "=COUNT(DATOS! RC:RC)"
t = Cells(Rows.Count, 1).End(xlUp).Row
Cells(t + 1, 1) = TextBox1.Text
Cells(t + 1, 2) = Format(DTPregistro.Value, "yyyy/mm/dd")
Cells(t + 1, 3) = ComboBox1.Value
Cells(t + 1, 4) = ComboBox2 & " " & TextBox3
Cells(t + 1, 5) = TextBox2.Text
Cells(t + 1, 6) = ComboBox3.Value
Cells(t + 1, 7) = ComboBox4.Value
Cells(t + 1, 8) = Format(DTPentrega.Value, "yyyy/mm/dd")
Cells(t + 1, 14) = TextBox4.Text
TextBox1.Text = ""
DTPregistro.Value = ""
ComboBox1.Value = ""
ComboBox2.Value = ""
TextBox2.Text = ""
ComboBox3.Value = ""
ComboBox4.Value = ""
DTPentrega.Value = ""
TextBox3.Text = ""
TextBox4.Text = ""
Application.ScreenUpdating = True
End Sub

Saludos.

1 Respuesta

Respuesta
1

No creo que la propiedad Matchentry sea el problema

Pero puedes poner lo siguiente en la captura de cada combo para aceptar únicamente valores del combo

Private Sub ComboBox1_Change()
'Por.Dam
On Error Resume Next
valor = ComboBox1.List(ComboBox1.ListIndex, 0)
If valor = "" Then
If ComboBox1 <> "" Then
MsgBox "No se permiten valores diferentes a los del combo", vbCritical, "Error"
ComboBox1.SetFocus
ComboBox1 = ""
End If
End If
End Sub

Prueba y me comentas

Saludos. Dam

Si es lo que necesitas.

Además de poner este código, mantengo la propiedad Matchentry?

Esa propiedad es como una ayuda, por ejemplo, si pones una letra, te trae un valor que empieza con esa letra y puedes ir poniendo letras y te va poniendo el valor que corresponda, pero no valida si después pones más letras que ya no coincidan con un valor del combo.

Prueba y me comentas

Saludos. Dam
Si es lo que necesitas.

He puesto tu código en todos los Combos y sigue dando el mismo problema.

Saludos.

Envíame tu archivo con el formulario y me dices cómo funciona, qué datos debo capturar y lo reviso.

Recibiste el archivo?

Si y ya te contesté.

Saludos. Dam
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas