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!

Preguntas similare

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

Respuesta Responder a este mensaje
#2 Seepy
19/11/2009 - 10:01 | Informe spam
On 18 nov, 11:53, "Juan M" wrote:
"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


- Mostrar texto de la cita -



Muchísimas gracias por la ayuda. Me ha servido de mucho. Ya lo tengo
funcionando, aunque estoy depurando algunas cositas. Gracias de nuevo!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida