Problema con vba en excel intento crear un formulario y tengo un error 400 alguna idea

el error me sale al usar el código

If Not Application.Intersect(Target, Range("Lanzar_ElegirItem")) Is Nothing Then
IngresoItem.Show
End If
Sheets("Orden_de_Compra").Activate
Range("d4").Activate

el depurador me lleva a ingresoitem.show y no entiendo porque esta instrucción es simplemente para que me lance un formulario con el que relleno una orden de compra. Gracias de antemano por su tiempo y espero alguna idea al respecto

1 Respuesta

Respuesta
1

El error no está en esta línea sino en el Userform llamdao IngresoItem .

Desde el Editor, ejecutá directamente el UF y allí sabrás en qué línea se detiene, seguramente en el evento Initialize o Activate porque no llega ni a mostrarlo.

Revisá qué hoja está seleccionada y cosas x el estilo.

Sdos y comentame si lo encontraste. Sino escribime aquí las instrucciones del UF.

Private Sub ComboBoxDescripcion_Change()
Application.ScreenUpdating = False
On Error Resume Next
Sheets("Listado_Precios").Activate
Cells(ComboBoxDescripcion.ListIndex + 2, 1).Select
TextBoxItem = ActiveCell.Offset(0, 1)
TextBoxCantidad = ActiveCell.Offset(0, 2)
TextBoxUM = ActiveCell.Offset(0, 3)
TextBoxPrecioU = ActiveCell.Offset(0, 4)
TextBoxDTO = ActiveCell.Offset(0, 5)
TextBoxICO = ActiveCell.Offset(0, 6)
TextBoxIVA = ActiveCell.Offset(0, 7)
End Sub
Private Sub ComboBoxDescripcion_Enter()
Application.ScreenUpdating = False
ComboBoxDescripcion.Clear
Sheets("Listado_Precios").Select
Range("a2").Select
Do While Not IsEmpty(ActiveCell)
ComboBoxDescripcion.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Private Sub CommandButtonACEPTAR_Click()
Application.ScreenUpdating = False
Sheets("Orden_de_Compra").Activate
'Al cambiar el rango a una celda diferente de la que lanzaba el IngresoItem dejo de darme el error
Range("c11").Activate
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Activate
Loop
ActiveCell = ComboBoxDescripcion
ActiveCell.Offset(0, -1) = TextBoxItem
ActiveCell.Offset(0, 1) = TextBoxCantidad
ActiveCell.Offset(0, 2) = TextBoxUM
ActiveCell.Offset(0, 3) = TextBoxPrecioU
ActiveCell.Offset(0, 4) = TextBoxDTO
ActiveCell.Offset(0, 5) = TextBoxICO
ActiveCell.Offset(0, 6) = TextBoxIVA
ComboBoxDescripcion.Clear
TextBoxItem = ""
TextBoxCantidad = ""
TextBoxUM = ""
TextBoxPrecioU = ""
TextBoxDTO = ""
TextBoxICO = ""
TextBoxIVA = ""
IngresoItem.Hide
'Sheets("Orden_de_Compra").Activate
End Sub
Private Sub UserForm_Click()
End Sub

este es el código de UF la verdad gracias a tu respuesta pues cambie la linea que comento arriba y no me sigue dando problema seguiré con el proyecto a ver si consigo q me salga todo como quiero

gracias por tu tiempo

Resuelto el tema entonces.

Solo un detalle más: tené presente que Hide solo oculta el UF pero sigue estando abierto y por lo tanto con su contenido y consumiendo recursos.

Como este se abrió al seleccionar una celda, cuando vuelvas a seleccionar otra se volverá a abrir. Entonces es mejor que lo cierres, salvo que estés seguro de que así debe ser.

Sdos y no dejes la consulta sin finalizar sino no podrás dejar otras nuevas en el tablón.

Reglas del foro.

Elsa

Hola gracias por tu ayuda me fue de utilidad y muy rápida tu respuesta

creo q lo ultimo te referías a usar Unload para el UF y no el hide o es lo que entendí lo tendré en cuenta sin mas me despido y gracias continuare con mi proyecto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas