Unidad 7. Aplicaciones (I)



A continuación vamos a desarrollar dos aplicaciones del uso macros y formularios en la solución de ciertos problemas

Aplicación 1 : Consulta y extracción en una base de datos

Se desea contar con una macro que permita consultar si es cliente o no y si existe, extraer toda la información de uno o más clientes hacia una nueva hoja. La macro debe solicitar el nombre de la hoja hacia donde se desea extraer y también el DNI para realizar la búsqueda. Los datos se encuentran en el archivo QbdClientes.xlsm.

Procedimiento:

P1. Insertamos un módulo en el editor. Digitamos: Sub Consulta y presionamos <Enter> para crear el módulo:

Sub Consulta()

End

P2. Declaramos las variables HjName y Dni como de tipo String. El primero para recibir el nombre de la hoja y el segundo para recibir el número de DNI que se consultará.

P3. El siguiente código permite saber el número de registro que contiene la base de datos (menos las dos filas iniciales).

    nDat = Columns("A:A").Range("A65536").End(xlUp).Row

P4. El siguiente segmento de código permite realizar la búsqueda en toda la tabla por el DNI solicitado, usando a Ix como puntero de fila. Si lo encuentra Ix contendrá el número de fila desde donde se extraerán los datos.

    For Ix = 3 To nDat

        If Val(Trim(Cells(Ix, 1))) = Dni Then

            Sheets(HjName).Cells(Iz, 1) = Dni

            Sheets(HjName).Cells(Iz, 2) = Cells(Ix, 2)

            Sheets(HjName).Cells(Iz, 3) = Cells(Ix, 3)

            Sheets(HjName).Cells(Iz, 4) = Cells(Ix, 4)

            Sheets(HjName).Cells(Iz, 5) = Cells(Ix, 5)

            Sheets(HjName).Cells(Iz, 6) = Cells(Ix, 6)

            Sheets(HjName).Cells(Iz, 7) = Cells(Ix, 7)

            Sheets(HjName).Cells(Iz, 8) = Cells(Ix, 8)

            Ir = 1

        End If

    Next

P5. El siguiente segmento emite un mensaje si no encuentra el DNI

    If Ir = 0 Then

            MsgBox ("No existe este DNI(RUC). Verifique")

            If Iz > 2 Then Iz = Iz - 1

    End If

P6. Finalmente el siguiente código permite retornar a la hoja de datos y saber si se desea hacer otra búsqueda.

    Sheets(HjName).Activate

    Range("A5").Select

    If UCase(InputBox("Desea extraer otro? (S/N)")) = "S" Then

        Iz = Iz + 1

    Else

        Iz = 0

    End If

El procedimiento completo se encuentra en el editor del Visual basic. Hemos insertado un botón de comando a fin de ejecutar la macro haciendo clic en él. Se puede hacer clic en C1 de la hoja Salida para volver a la hoja de datos.

Noviembre-2010
Pág. 7.1

Atrás  Inicio  Adelante





Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies