Ayuda para crear Macro

13/01/2010 - 11:16 por doitunkboo | Informe spam
Hola a todos, estoy intentando crear una macro para automatizar un
pequeño proceso pero no estoy muy puesto en el tema y quisiera que
alguno de vosotros me eche una mano si es posible.

Se trata de lo siguiente, os pongo una imagen de lo que tengo para que
os sea mucho mas fácil entenderlo.
Tengo 2 cuadros de datos, en uno se almacenan las cantidades de varios
productos (Datos A,B,C,D) y en el otro las posiciones que deben tener
en la zona de resultado horizontal (Datos Matriz).
[IMG]http://img43.imageshack.us/img43/59...104427.png[/IMG]

La macro debe coger en primer lugar los datos de la 1º columna de la
Matriz y ordenarlos según el ejemplo en siempre en orden descendente.
Tal y como se ve en el ejemplo la primera fila resultante sería
A,A,A,B,B->2,34,20,25,10 los tres primeros números de la columna A y
los dos últimos de la columna B del bloque Datos, la siguiente sería
exactamente igual y así sucesivamente hasta llegar a la columna 12 del
bloque Matriz.

El objetivo es ir copiando los datos del bloque Datos según lo que
haya en el bloque Matriz e ir colocandolos de izquierda a derecha en
horizontal, como se ve en el ejemplo.
Como ya os he dicho no estoy muy puesto en programación en excel y por
mas que lo intento no consigo hacerlo, así que os agradecería que me
dijeseis como se puede hacer de una forma sencilla.

Gracias y un saludo.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
14/01/2010 - 06:16 | Informe spam
hola, 'anonimo/a' !

a la imagen la faltan los encabezados de fila y columna (para poder REcrear un modelo de trabajo "igual al tuyo" ?)
si podemos asumir que el arreglo de datos es +/- como el siguiente:

- los numeros ordinales en el rango [A2:A6]
- los titulos del primer cuadro de datos en el rango [B1:E1] (A,B,C,D)
- el rango de datos del primer cuadro seria [B2:D6]
- los titulos del segundo cuadro en el rango [H1:S1] (1,2,3...12)

1) selecciona el rango para la primer salida (p.e.) [B8:F8]

2) introduce la siguiente formula SOLAMENTE en la celda [B8]
=indice($b$2:$e$6,columna(b$1:f$1)-1,transponer(coincidir(desref($h$2:$h$6,,filas(a$8:a8)-1),b$1:e$1,0)))
(toma buena nota de los rangos en la formula y de que mi sistema usa como separador de argumentos a la coma)
OJO: termina la edicion de la formula pulsando {ctrl}+{shift}+{enter} (NO solamente el enter)

3) copia/arrastra el rango [B8:F8] hasta cubrir las 12 filas necesarias (el rango completo de: [B8:F19])

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ OP __
... estoy intentando crear una macro para automatizar un pequeno proceso
pero no estoy muy puesto en el tema y quisiera que alguno de vosotros me eche una mano si es posible.
... os pongo una imagen de lo que tengo para que os sea mucho mas facil entenderlo.
Tengo 2 cuadros de datos, en uno se almacenan las cantidades de varios productos (Datos A,B,C,D)
y en el otro las posiciones que deben tener en la zona de resultado horizontal (Datos Matriz).
http://img43.imageshack.us/img43/59...104427.png
La macro debe coger en primer lugar los datos de la 1º columna de la Matriz y ordenarlos segun el ejemplo siempre en orden descendente.
Tal y como se ve en el ejemplo la primera fila resultante seria A,A,A,B,B->2,34,20,25,10
los tres primeros numeros de la columna A y los dos ultimos de la columna B del bloque Datos
la siguiente seria exactamente igual y así sucesivamente hasta llegar a la columna 12 del bloque Matriz.
El objetivo es ir copiando los datos del bloque Datos segun lo que haya en el bloque Matriz
e ir colocandolos de izquierda a derecha en horizontal, como se ve en el ejemplo...
Respuesta Responder a este mensaje
#2 doitunkboo
14/01/2010 - 10:01 | Informe spam
Genial Héctor, muchas gracias con esto me resolviste el problema.

Un saludo ;-))


On 14 ene, 06:16, "Héctor Miguel"
wrote:
hola, 'anonimo/a' !

a la imagen la faltan los encabezados de fila y columna (para poder REcrear un modelo de trabajo "igual al tuyo" ?)
si podemos asumir que el arreglo de datos es +/- como el siguiente:

- los numeros ordinales en el rango [A2:A6]
- los titulos del primer cuadro de datos en el rango [B1:E1] (A,B,C,D)
- el rango de datos del primer cuadro seria [B2:D6]
- los titulos del segundo cuadro en el rango [H1:S1] (1,2,3...12)

1) selecciona el rango para la primer salida (p.e.) [B8:F8]

2) introduce la siguiente formula SOLAMENTE en la celda [B8]
    =indice($b$2:$e$6,columna(b$1:f$1)-1,transponer(coincidir(desref($h$2:$h$6,,filas(a$8:a8)-1),b$1:e$1,0)))
    (toma buena nota de los rangos en la formula y de que mi sistema usa como separador de argumentos a la coma)
    OJO: termina la edicion de la formula pulsando {ctrl}+{shift}+{enter} (NO solamente el enter)

3) copia/arrastra el rango [B8:F8] hasta cubrir las 12 filas necesarias (el rango completo de: [B8:F19])

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ OP __

> ... estoy intentando crear una macro para automatizar un pequeno proceso
> pero no estoy muy puesto en el tema y quisiera que alguno de vosotros me eche una mano si es posible.
> ... os pongo una imagen de lo que tengo para que os sea mucho mas facil entenderlo.
> Tengo 2 cuadros de datos, en uno se almacenan las cantidades de varios productos (Datos A,B,C,D)
> y en el otro las posiciones que deben tener en la zona de resultado horizontal (Datos Matriz).
>http://img43.imageshack.us/img43/59...104427.png
> La macro debe coger en primer lugar los datos de la 1º columna de la Matriz y ordenarlos segun el ejemplo siempre en orden descendente.
> Tal y como se ve en el ejemplo la primera fila resultante seria A,A,A,B,B->2,34,20,25,10
> los tres primeros numeros de la columna A y los dos ultimos de la columna B del bloque Datos
> la siguiente seria exactamente igual y así sucesivamente hasta llegar a la columna 12 del bloque Matriz.
> El objetivo es ir copiando los datos del bloque Datos segun lo que haya en el bloque Matriz
> e ir colocandolos de izquierda a derecha en horizontal, como se ve en el ejemplo...
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida