En muchas ocasiones, nuestro trabajo demanda el registro de datos a una única base, con el objeto de crear reportes a partir de la misma. En esta ocasión se ha realizado un ejemplo de como realizar un registro de los datos principales de un proyecto mediante el uso del bucle "Do Loop".
Para facilitar el uso de macro, la hemos asignado a un botón, tal y como se muestra en la siguiente figura:
(Para mayor visualización de la imagen, hacer click en la misma)
Se utilizaron lo siguientes comandos:
Sub registro()
Dim primerafila As Double
Dim nombre As String
Dim cliente As String
Dim monto As Double
Dim unidad As String
Dim cantidad As Double
Dim firma As Date
Dim duracion As Integer
Dim responsable As String
'determinar la primera fila
primerafila = 5
Do While Cells(primerafila, 1) = ""
primerafila = primerafila - 1
Loop
Do While Cells(primerafila + 1, 1).Value = "" And MsgBox("¿Desea registrar muevo proyecto?", vbYesNo, "Registro") = vbYes
codigo = InputBox("Ingrese codigo del proyecto", "Código")
nombre = InputBox("Ingrese el nombre del proyecto", "Nombre")
cliente = InputBox("Ingrese el nombre del cliente", "Cliente")
monto = InputBox("Ingrese el monto del proyecto", "Monto")
unidad = InputBox("Ingrese la unidad de medida", "UM")
cantidad = InputBox("Ingrese la cantidad de la unidad", "Cantidad")
firma = InputBox("Ingrese la fecha de firma", "Fecha")
duracion = InputBox("Ingrese la duración del proyecto", "Duración")
responsable = InputBox("Ingrese al reponsable del proyecto", "Responsable")
Cells(primerafila + 1, 1).Value = codigo
Cells(primerafila + 1, 2).Value = nombre
Cells(primerafila + 1, 3).Value = cliente
Cells(primerafila + 1, 4).Value = monto
Cells(primerafila + 1, 5).Value = unidad
Cells(primerafila + 1, 6).Value = cantidad
Cells(primerafila + 1, 7).Value = firma
Cells(primerafila + 1, 8).Value = duracion
Cells(primerafila + 1, 9).Value = responsable
primerafila = primerafila + 1
Loop
End Sub
Con el primer bucle, obtenemos la primera fila a ser llenada cada vez que se utilice la macro, de esta manera se nos permitirá actualizar la base cada vez que se desee. El segundo bucle nos obligará a llenar la base de datos luego de aceptar el registro de un proyecto; una vez terminado el registro de un proyecto, la macro consultará si se desea seguir registrando y dependiendo de la respuesta el bucle se cerrará. Cabe volver a mencionar, que el primer bucle permitirá su actualización.
Muy útil cuando se desee trabajar una propia base de datos. Ejemplo Do Loop aplicado al registro de proyectos
Creado por: David Perez-Palma Diaz
17/02/2013 a las 12:38 pm
Me parece muy interesante y aplicativo el uso de Do Loop para el registro de proyectos; sin embargo, no entiendo el significado de
Do While Cells(primerafila, 1) = “”
primerafila = primerafila – 1
Loop
Yo no lo use en mi macro y funciono bien.
Agradecería puedan ayudarme.
Saludos.
04/11/2015 a las 1:05 am
ME PAREN MUY BIEN QUE LO QUE HACEN .
MUCHAS GRACIAS.