Unidad 5. Programación usando objetos del Excel (XIX)



Ejemplo 09. Usar el módulo anterior para realizar otros cálculos

Usando el módulo anterior, obtener en las siguientes columnas, los cálculos de X*X, X*Y, Y*Y y  X²*Y. Para luego obtener las sumatorias en la última fila.

Procedimiento principal:

Paso 1: Declaración de variables y arreglos

Paso 2: Llamada al módulo anterior de lectura e ingreso de datos

Paso 3: Llamada al módulo de cálculo y almacenamiento en columnas

A continuación la única instrucción global que debe codificarse así como los módulos adicionales al módulo principal.

Hemos vuelto a copiar el módulo anterior Ej08()

Dim nDat As Variant

Sub PMain()

'

'     Nombre de columna

'

Range("C1") = "X²"

Range("D1") = "X*Y"

Range("E1") = "X²*Y"

Range("F1") = "Y²"

Range("G1") = "X*Y²"

'   Inicialización de variables

'   Llama a ingreso de datos

'

Ej08    ' Ingreso de datos

'

'   Obtiene el número de datos invocando el procedimiento NroDatos.

'   Se encuentra en la siguiente página

NroDatos

'

' La variable global (común a todos los procedimientos) se reduce en 1

'

nDat = nDat - 1

'

'   Loop para calcular las columnas

'

For I = 1 To nDat

    Cells(I + 1, 3) = Cells(I + 1, 1) ^ 2

    Cells(I + 1, 4) = Cells(I + 1, 1) * Cells(I + 1, 2)

    Cells(I + 1, 5) = Cells(I + 1, 3) * Cells(I + 1, 2)

    Cells(I + 1, 6) = Cells(I + 1, 2) ^ 2

    Cells(I + 1, 7) = Cells(I + 1, 1) * Cells(I + 1, 6)

Next

'   Obtiene la suma de todas las columnas y los guarda una fila más abajo

'

' VarSuma = Range(Cells(2, 1), Cells(21, 1)): Ejemplo de cómo seleccionar un

' determinado rango, usado líneas abajo

For I = 1 To 7

    Cells(2, I).Select

' Range("A2").Select

' Selecciona el rango de datos de la i-ésima columna

'

    VarSuma = Range(Selection, Selection.End(xlDown))

'Suma el rango seleccionado y lo almacena

    Cells(nDat + 3, I) = Application.WorksheetFunction.Sum(VarSuma)

Next

End Sub

Sub Ej08()

Dim StDato As String

' Usaremos la columna A y B a partir de la fila 2

'

Row = 2

Col = 1

Range("A1") = "X"

Range("B1") = "Y"

'

' La siguiente sentencia permite centrar el dato contenido en el rango

'

Range("A1:B1").HorizontalAlignment = xlCenter

'

' Ingreso de datos

'

nDat = InputBox("Número de datos")

For I = 1 To nDat

    Dato = InputBox("Dato: " & I)

    Cells(I + 1, 1) = Val(Mid(Dato, 1, InStr(Dato, ",") - 1))

    Cells(I + 1, 2) = Val(Mid(Dato, InStr(Dato, ",") + 1, Len(Dato) - InStr(Dato, ",")))

Next

End Sub

Sub NroDatos()

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

End Sub

Nota 1:

Este es un ejemplo independiente del módulo principal usado para probar la definición de un rango y la forma de cómo sumar dicho rango

Sub Macro4()

' VarSuma = Range(Cells(2, 1), Cells(21, 1))

For I = 1 To 7

    Cells(2, I).Select

' Range("A2").Select

    VarSuma = Range(Selection, Selection.End(xlDown))

'Sumar el rango

    Cells(24, I) = Application.WorksheetFunction.Sum(VarSuma)

Next

End Sub

Nota 2:

Si abre el archivo Uso de Módulos.xls, en la primera hoja encontrará un botón al cual se le ha asignado la macro PMain(). De manera que si desea ver una demostración de esto, debe hacer clic en dicho control.

Noviembre-2010
Pág. 5.19

Atrás  Inicio  Adelante





Página inicial  Cursos Informática Gratuitos

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