Saltar al contenido

Otra forma de registrar datos


Enigma25

Recommended Posts

publicado

Buenas noches

Estimados señores

Como siempre muy agradecido por todo lo que he aprendido en el foro y la paciencia que han tenido para ayudarme.

En esta oportunidad les dejo un proyecto que está en pleno desarrollo a nivel de prueba así como tambien de practica. Se trata de una manera de registrar la información empleando al máximo las columnas de la hoja destino (Hoja Registros).

Dado que usamos (a veces) Excel como base de datos para algunos trabajos, que pasaría si aprovechamos al máximo las columnas en ves de las fila...?. Así evitaríamos repeticiones en los productos, cantidades, etc.

Claro que todo es posible gracias a los bucles For Next y que estos son muy pesado luego de un tiempo. Sin embargo las posibilidades son enormes dado que si lo calculamos, una hoja Excel 2007, 2013 tiene una capacidad de 1.048.575 filas disponibles (Con Encabezado). Entonces si se hacen 150 operaciones al día como ejemplo:

  • (1.048.575 filas disponibles /150 operaciones)=6.990 días.
  • 6.990 días / 365 días al año=19 años aproximadamente.

19 años seria la capacidad de almacenaje de información que contendría la hoja (Registros).

En síntesis, cada fila de la hoja Registros contendrá toda la operación almacenada previamente.

Adjunto archivo con información ya almacenada y con datos en la hoja Menú para que realicen la operación y vean su ejecución. Las validaciones, depuración de código, Modificaciones están en su diseño pero la intención es mostrar la idea. Luego al terminar les doy el proyecto Completo.

P.D. Todo se realiza con las hojas Excel como medio para las operaciones.

Proyecto Enigma.zip

publicado

Bueno... este seria la forma en la cual les había comentado... tienen a la mano la opción de registrar por otra manera

Cuenta con consultas y modificaciones.

Espero les guste.

Proyecto Enigma.zip

publicado

Buen día estimados

Con la intención de mejorar el código, en este caso el de modificación, realicé el siguiente ajuste para evitar emplear dos bucles. Así será mucho mas rápido su ejecución:

Sub Modificar_Registros()

Set MM = ThisWorkbook.Worksheets("Menu") 'Hoja Menu
Set MR = ThisWorkbook.Worksheets("Registros") 'Hoja Registros

CC = MM.[Control].Value

Set ZZ = MR.Columns(1).Find(What:=CC)

If Not MsgBox(Mensaje_Dato, vbQuestion + vbYesNo, "Modificar") = vbYes Then Exit Sub

    ZZ.Offset(0, 0).Value = MM.[Control].Value
    ZZ.Offset(0, 1).Value = MM.[Fecha]
    ZZ.Offset(0, 2).Value = MM.[Menu_Solicitante].Value
    ZZ.Offset(0, 3).Value = MM.[Menu_Razon].Value

For I = 0 To 22 Step 1
    ZZ.Offset(0, I + 4).Value = MM.Cells(I + 11, 1)
    ZZ.Offset(0, I + 27).Value = MM.Cells(I + 11, 3)
    ZZ.Offset(0, I + 50).Value = MM.Cells(I + 11, 4)
Next I

 ZZ.Offset(0, 73).Value = MM.[Observaciones].Value

Call Borrar

    MsgBox Mensaje, vbInformation, "Listo"

End Sub

Proyecto Enigma.zip

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.