Registrar más rápido con formulario vba
Cuento con el siguiente código, sin embargo demora al registrar los datos en la tabla, tener en cuenta que llevo 6000 registros
Private Sub ButtonGuardar_Venta_Click() Set Productos = Sheets("Productos") Set Proveedor = Sheets("Proveedor") Set Salidas = Sheets("Salidas") Set Calculos = Sheets("Calculos") Application.ScreenUpdating = False On Error Resume Next If Me.TextFecha_Venta = Empty Or Me.ComboCliente_Venta = Empty Or Me.TextDocumento_Venta = Empty Then MsgBox "Se encontraron campos vacíos, complete los campos vacíos para continuar", vbCritical, "Campos Vacíos" Else X = MsgBox("¿Desea Guardar los Cambios?", vbYesNo, "Ingresar") If X = vbYes Then Salidas.Unprotect "cinventarios" 'Eliminamos si hay documento existente '---------------------------------------------------------------- If Calculos.Range("D16") > 0 Then Salidas.ListObjects("TablaSalidas").AutoFilter.ShowAllData Salidas.ListObjects("TablaSalidas").Range.AutoFilter field:=2, Criteria1:="=" & Me.TextDocumento_Venta & "", Operator:=xlAnd Salidas.Range("TablaSalidas").SpecialCells(xlCellTypeVisible).EntireRow.Delete Salidas.ListObjects("TablaSalidas").AutoFilter.ShowAllData End If '------------------------------------------------------------- Salidas.ListObjects("TablaSalidas").AutoFilter.ShowAllData For i = 0 To Me.ListVentas.ListCount - 1 Calculos.Range("CodProducto_Venta").Value = Me.ListVentas.List(i, 0) Salidas.ListObjects("TablaSalidas").ListRows.Add (1) Salidas.Range("B10").Value = CDate(Me.TextFecha_Venta) Salidas.Range("C10").Value = Me.TextDocumento_Venta Salidas.Range("e10").Value = Me.ComboCliente_Venta.Text Salidas.Range("f10").Value = Me.ListVentas.List(i, 0) Salidas.Range("g10").Value = Calculos.Range("Categoria_Venta") Salidas.Range("h10").Value = Me.ListVentas.List(i, 1) Salidas.Range("i10").Value = Me.TextComentario_Venta Salidas.Range("j10").Value = VBA.CDbl(Me.ListVentas.List(i, 2)) Next MsgBox "Número de documento ingresado " & Me.TextDocumento_Venta, vbInformation, "Ingresado" Me.TextCantidad_Venta.Value = Empty Me.TextFecha_Venta.Value = Empty Me.TextDocumento_Venta.Value = Empty Me.ComboCliente_Venta.Value = Empty Me.TextComentario_Venta.Value = Empty Me.TextCodProducto_Venta.Value = Empty Me.ComboProducto_Venta.Value = Empty Me.TextExistencia_Venta.Value = Empty Me.ListVentas.Clear Me.btnImprimir_Venta.Visible = False Calculos.Range("D22").Value = Empty Me.TextDocumento_Venta.Locked = False Calculos.Range("M5:N1000").ClearContents Me.TextFecha_Venta.SetFocus Salidas.Protect "cinventarios", DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFormattingCells:=True, AllowFormattingColumns:=True, _ AllowFormattingRows:=True, AllowDeletingRows:=True, AllowFiltering:=True End If End If Application.ScreenUpdating = True End Sub
1 Respuesta
Respuesta de Dante Amor
1