le di una mirada rápida al archivo y en mi humilde opinión me parece que estas planteando mal tu solución, si bien no esta la hoja productos ni factura para ver el ejemplo completo, yo creo que en registro de proveedores solo debería figurar eso, datos del proveedor, su nombre, cedula, datos de contacto, sin incluir los productos, luego deberías tener una tabla aparte para productos, nombre, tipo, precio, otros, aquí agregar el nombre del proveedor, aparte tener otra tabla con el detalle de las compras (proveedores) y otra para el detalle de las ventas (clientes), aquí registrarías numero de factura, cliente / proveedor, producto, cantidad, precio.
Proveedores
ID - Nombre - Dirección - Ciudad - RIF / CI - Telf 1 - Telf 2 - otros
Productos
ID - Nombre - Tipo - Proveedor - Precio - otros
Factura
numero - fecha - cliente - producto - precio - otros
otros pequeños detalles...
sub algo()
Application.ScreenUpdating = false
...
Application.ScreenUpdating = True
end sub
si no me equivoco y si lo hago me corrigen, lo que hace esto es básicamente que los cambios que va haciendo la macro, por ejemplo abrir otra hoja, seleccionar un rango de celdas para copiar, etc, no se vean en pantalla, entonces debes decirle al comenzar que no muestre (false) y al terminar volver a activarlo (true).
personalmente uso algunos adicionales...
sub algo()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
...
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
ActiveSheet.DisplayPageBreaks = True
end sub
por cierto, me parece bien que consideres el crédito en el código, pero lo correcto seria que en Numerar() diga... por AtilioNaler