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.
Síguenos en: Facebook Sobre aulaClic Política de Cookies