INFORMÁTICA – VBA
'Primero creo el módulo
Option Explicit
Option Base 0
'Option explicit es para declarar las variables
'Option base cero para que las direcciones y matrices empiecen en 0
Sub INFORMÁTICA_1CLASE18_04()
Dim Miarray() As Double
'double es para decimales de doble precisión
'interger es para numeros enteros
Dim nfilas As Integer, iterador As Integer
'Queremos saber cuantos datos hay
Cells(3, 2).Select
Range(ActiveCell, [Link](xlDown)).Select
'Cuantas filas tiene el rango de datos o selection
'<[Link]>
'Ese valor se lo asignare a una nueva variable = nfilas
'tengo que definir esta nueva variable arriba en Dim
nfilas = [Link]
'Quiero escribir/leer los datos de la celda en el Array
'utilizo la estructura "For"
'For i = 0 To nfilas
'Con la orden ReDim puedo cambiar los valores del Array
'... es decir, restablece el tamaño del vector
ReDim Miarray(0 To (nfilas - 1)) As Double
'iterador es una nueva variable. Ademas, se escribe...
'el cero como valor inicial y lo que deseas como valor final
For iterador = 0 To (nfilas - 1)
'Quiero que vaya del 0 al 7 porque son 8 direcciones entonces le -1
Miarray(iterador) = Cells(3 + iterador, 2)
'estoy leyendo la celda y asignadole al array
'----- HASTA AQUI EL CODIGO SOLO HA LEIDO DATOS
Next
'---PROCESO DE DATOS: Si encuentra un valor que seleccione la celda
For iterador = 0 To (nfilas - 1)
If Miarray(iterador) = 9 Then
'Si el vector que va de 0 a 7 encuentra un 9 lo seleccionara
'Cells(3 + iterador, 2).Select
'----PROCESO DE DATOS 2: quiero que marque los 9
Cells(3 + iterador, 2).[Link] = 18
End If
Next
End Sub
Sub INFORMÁTICA_2CLASE21_04()
Dim M() As Double, P() As Double, I() As Double, promediotot As Double
Dim iteradormes As Double, iteradoryear As Double, promediomens As Double, j As
Double
Dim meses As Integer, years As Integer
Cells(3, 2).Select
Range(ActiveCell, [Link](xlDown)).Select
meses = [Link]
years = meses / 12
promediotot = [Link](Selection)
ReDim M(0 To (years - 1))
ReDim P(0 To 11)
ReDim I(0 To 11)
For iteradormes = 0 To 11
For iteradoryear = 0 To (years - 1)
M(iterador) = Cells(3 + iteradormes + 12 * iterador, 2)
Next
promediomens = [Link](M())
P(iteradormes) = promedio
I(iteradormes) = P(iteradormes) / promediotot
Cells(20 + iteradormes, 4) = iteradormes + 1
Cells(20 + iteradormes, 5) = I(iteradormes)
Next
For j = 0 To (meses - 1)
For iteradormes = 0 To 11
Cells(3 + iteradormes + 12 * j, 3) = Cells(3 + iteradormes + 12 * j, 2) / I(iteradormes)
Next
Next
End Sub