Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Algoritmo recorrido matriz datos

427 views
Skip to first unread message

Seepy

unread,
Nov 18, 2009, 3:38:19 AM11/18/09
to
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!

Juan M

unread,
Nov 18, 2009, 5:53:07 AM11/18/09
to

"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

-- inicio codigo

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

-- fin codigo


Seepy

unread,
Nov 19, 2009, 4:01:19 AM11/19/09
to
On 18 nov, 11:53, "Juan M" <jumo...@NOSPAMhotmail.com> 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
>
> -- inicio codigo
>
> 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
>
> -- fin codigo- Ocultar texto de la cita -
>
> - 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!

0 new messages