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