Algoritmo recorrido matriz datos

18/11/2009 - 09:38 por Seepy | Informe spam
Hola, buenos días. Necesito su ayuda en un algoritmo para recorrer una
matriz de datos y realizar unas serie de operaciones con ellos. Os
comento:
1) Dispongo de un a matriz de datos variable en un rango de excel
2) Debo recorrer la matriz de arriba a abajo y de derecha a izquierda.
3) Realizar unas operaciones con los datos en casa de que existan (<>
0)

Me gustaría saber unas cosas:

- ¿Cómo posicionarme al final (derecha) de la matriz e ir recorriendo
la matriz de arriba a abajo y de derecha a izquierda? La mtriz no
tiene unas limitaciones definidas, empieza en una fila concreta, eso
sí.

- ¿Cómo debo ir accediendo al contenido de las celdas para poder
obtener los valores de cada una y realizar operaciones en caso de que
sea necesario hacerlas?

- ¿Cómo puedo ir modificando el valor de esas celdas en caso de que
deba hacerlo?

Espero que puedan ofrecerme algunas orientaciones. muchas gracias por
su ayuda. Un saludo!
 

Leer las respuestas

#1 Juan M
18/11/2009 - 11:53 | Informe spam
"Seepy" escribió
Hola, buenos días. Necesito su ayuda en un algoritmo para recorrer una
matriz de datos y realizar unas serie de operaciones con ellos. Os
comento:
1) Dispongo de un a matriz de datos variable en un rango de excel
2) Debo recorrer la matriz de arriba a abajo y de derecha a izquierda.
3) Realizar unas operaciones con los datos en casa de que existan (<>
0)

Me gustaría saber unas cosas:

- ¿Cómo posicionarme al final (derecha) de la matriz e ir recorriendo
la matriz de arriba a abajo y de derecha a izquierda? La mtriz no
tiene unas limitaciones definidas, empieza en una fila concreta, eso
sí.

- ¿Cómo debo ir accediendo al contenido de las celdas para poder
obtener los valores de cada una y realizar operaciones en caso de que
sea necesario hacerlas?

- ¿Cómo puedo ir modificando el valor de esas celdas en caso de que
deba hacerlo?

Espero que puedan ofrecerme algunas orientaciones. muchas gracias por
su ayuda. Un saludo!



Hola,

Es importante el orden? primero filas y despues columnas o primero columnas
y despues filas?
La prueba que te he preparado considera primero las filas desde la derecha y
luego pasa a la columna anterior.

Para modificar el contenido de una celda solo es necesario escribir:
range("A3")=3

Si comentas que más necesitas y que rangos empleas (aunque solo sea la celda
origen) se pueden eliminar alguna cosa.

El codigo lo he intentado hacer bastante generico, cambia los valores de una
matriz por el numero de orden en que ha leido el elemento

La matriz se define por la dirección donde está la primera celda (arriba a
la izquierda) definido en la variable origen.


Un saludo,
Juan


Sub CambiaMatriz()
Dim origen As String
Dim final As String
Dim OF As String

Dim i As Long
Dim j As Long
Dim k As Long

origen = "B4"
final = Range("B4").End(xlDown).End(xlToRight).Address
OF = origen & ":" & final

k = 0
For i = Range(OF).Columns.Count To 1 Step -1
For j = 1 To Range(OF).Rows.Count
Range(OF).Cells(j, i) = k
k = k + 1
Next j
Next i
End Sub

Preguntas similares