Nombrar matrices automaticamente

27/01/2008 - 13:37 por Jose | Informe spam
Alguien puede darme un código para crear nombres de matrices tantos como
columnas estén creadas en una "hoja1" cuyo rango sería el principio en la
columna D y fila 2 y el final en esa misma columna hasta donde esté el
último dato insertado (no hay filas en blanco), nombre de la matriz ="CP"+el
valor de la fila 2 (generalmente un código postal), y así sucesivamente
hasta la última columna ocupada..
Otra cosa, una vez establecidas esas matrices, por ejemplo la matriz CP30170
(que corresponde a la columna N2:N50) como es la linea de codigo para poner
en la celda A1 lo que se encuentra en N3.
¿Habría que crear y definir variables.?... gracias por la ayuda
Gracias y saludos
José Rafael

Preguntas similare

Leer las respuestas

#1 Ivan
27/01/2008 - 23:48 | Informe spam
hola Jose,

un código para crear nombres de matrices tantos como columnas estén creadas en una "hoja1" cuyo rango sería el principio en la columna D y fila 2 y el final en esa misma columna . nombre de la matriz ="CP"+el valor de la fila 2 ..., y así sucesivamente hasta la última columna ocupada..








como es la linea de codigo para poner en la celda A1 lo que se
encuentra en N3.<<<<

¿podrias aclarar algunas cosillas?

.-a que te refieres con 'crear matrices'

.-con que elementos quieres rellenarlas ¿con el contenido (de cada
celda) de cada columna?

.-que uso quieres dar a estas matrices

.- cuando y en funcion de que quieres que sea una u otra celda la que
se ponga en A1

bueno, no es de mucha ayuda pero creo que seria mas facil ayudarte

un saludo
Ivan
Respuesta Responder a este mensaje
#2 Jose
28/01/2008 - 22:49 | Informe spam
Por ejemplo si yo selecciono D3:D19 y me voy al cuadro de nombres y le llamo
CP04101 ya tengo una matriz por nombre que puedo usar por su nombre en
fórmulaspues bien tengo que hacer eso 50 ó mas veces y busco hacerlo
automaticamente. El automatismo es hasta el final de la fila2 (ahi están los
nombres) y en cada columna hasta la ultima fila que contenga un dato. Es
decir, necesito "nombrar esas "matrices" de acuerdo con lo dicho en mi
anterior post: "CP&"nombre de la correspondiente celda de cada columna en la
fila 2" el rango será desde la fila3 de esa misma columna hasta la
última fila con datos... ¿ok? gracias
Respecto a que en la celda A1 quiero que ponga el nombre de la fila 2 de la
columna elegida. supongo que será con offset no lo sé por eso pido la
ayuda. Será cada vez que pulse el boton que haga actuar a otra macro que ya
tengo que sirve para "extraer" en la columna A a partir de la celda A2 los
datos de por ejemplo la matriz aquella nombrada mas arriba CP04101. Espero
haberme explicado esta vez
Saludos y gracias por el interés.
Jose Rafael

"Ivan" escribió en el mensaje
news:
hola Jose,

un código para crear nombres de matrices tantos como columnas estén
creadas en una "hoja1" cuyo rango sería el principio en la columna D y
fila 2 y el final en esa misma columna . nombre de la matriz
="CP"+el valor de la fila 2 ..., y así sucesivamente hasta la última
columna ocupada..








como es la linea de codigo para poner en la celda A1 lo que se
encuentra en N3.<<<<

¿podrias aclarar algunas cosillas?

.-a que te refieres con 'crear matrices'

.-con que elementos quieres rellenarlas ¿con el contenido (de cada
celda) de cada columna?

.-que uso quieres dar a estas matrices

.- cuando y en funcion de que quieres que sea una u otra celda la que
se ponga en A1

bueno, no es de mucha ayuda pero creo que seria mas facil ayudarte

un saludo
Ivan
Respuesta Responder a este mensaje
#3 Ivan
28/01/2008 - 23:10 | Informe spam
Ok,

no parece complicado.

espero te ayuden

un saludo
Ivan
Respuesta Responder a este mensaje
#4 Héctor Miguel
29/01/2008 - 03:24 | Informe spam
hola, Jose !

__ 1 __
... si yo selecciono D3:D19 y me voy al cuadro de nombres y le llamo CP04101 ya tengo una matriz por nombre
que puedo usar por su nombre en formulaspues bien tengo que hacer eso 50 o mas veces y busco hacerlo automaticamente.
El automatismo es hasta el final de la fila2 (ahi estan los nombres) y en cada columna hasta la ultima fila que contenga un dato.
Es decir, necesito "nombrar esas "matrices" de acuerdo con lo dicho en mi anterior post:
"CP&"nombre de la correspondiente celda de cada columna en la fila 2"...
el rango sera desde la fila3 de esa misma columna hasta la ultima fila con datos... ok? gracias



1) "automatizar" el proceso de crear nombres (como lo explicas en estas consultas) requiere de una macro +/- asi:
Sub Nombra_rangos()
Dim Col As Byte
For Col = 4 To Range("iv2").End(xlToLeft).Column
Names.Add _
Name:="CP_" & Cells(2, Col), _
RefersTo:="=" & Range(Cells(2, Col).Offset(1), Cells(2, Col).End(xlDown)).Address(, , 1, 1)
Next
End Sub

__ 2 __
Respecto a que en la celda A1 quiero que ponga el nombre de la fila 2 de la columna elegida.
supongo que sera con offset no lo se por eso pido la ayuda.
Sera cada vez que pulse el boton que haga actuar a otra macro que ya tengo que sirve para "extraer" en la columna A
a partir de la celda A2 los datos de por ejemplo la matriz aquella nombrada mas arriba CP04101.
Espero haberme explicado esta vez...
Saludos y gracias por el interes.



2) asi... sin mayores detalles del uso que darias al contenido de la celda A1 (y algo mas, como indica ya Ivan).. -???-
si ya tienes los rangos nombrados, prueba con la funcion indice +/- asi: =indice(indirecto(a$1),fila(a1))

3) otras alternativas como offset/desref o alguna otra variante de formula (o codigo ?), seguramente...
dependera de los detalles que te animes a comentar... mas "en detalle" (como el codigo al pulsar "el boton") -???-

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#5 Jose
30/01/2008 - 20:38 | Informe spam
Otra vez gracias por todo. He resuelto lo que queria hacer en la celda A!
mediante un BUSCARH.
En fin todo bien y muchas gracias por vuesta colaboración.
Saludos
Jose Rafael



"Héctor Miguel" escribió en el mensaje
news:
hola, Jose !

__ 1 __
... si yo selecciono D3:D19 y me voy al cuadro de nombres y le llamo
CP04101 ya tengo una matriz por nombre
que puedo usar por su nombre en formulaspues bien tengo que hacer eso
50 o mas veces y busco hacerlo automaticamente.
El automatismo es hasta el final de la fila2 (ahi estan los nombres) y en
cada columna hasta la ultima fila que contenga un dato.
Es decir, necesito "nombrar esas "matrices" de acuerdo con lo dicho en mi
anterior post:
"CP&"nombre de la correspondiente celda de cada columna en la fila 2"...
el rango sera desde la fila3 de esa misma columna hasta la ultima fila
con datos... ok? gracias



1) "automatizar" el proceso de crear nombres (como lo explicas en estas
consultas) requiere de una macro +/- asi:
Sub Nombra_rangos()
Dim Col As Byte
For Col = 4 To Range("iv2").End(xlToLeft).Column
Names.Add _
Name:="CP_" & Cells(2, Col), _
RefersTo:="=" & Range(Cells(2, Col).Offset(1), Cells(2,
Col).End(xlDown)).Address(, , 1, 1)
Next
End Sub

__ 2 __
Respecto a que en la celda A1 quiero que ponga el nombre de la fila 2 de
la columna elegida.
supongo que sera con offset no lo se por eso pido la ayuda.
Sera cada vez que pulse el boton que haga actuar a otra macro que ya
tengo que sirve para "extraer" en la columna A
a partir de la celda A2 los datos de por ejemplo la matriz aquella
nombrada mas arriba CP04101.
Espero haberme explicado esta vez...
Saludos y gracias por el interes.



2) asi... sin mayores detalles del uso que darias al contenido de la celda
A1 (y algo mas, como indica ya Ivan).. -???-
si ya tienes los rangos nombrados, prueba con la funcion indice +/-
asi: =indice(indirecto(a$1),fila(a1))

3) otras alternativas como offset/desref o alguna otra variante de formula
(o codigo ?), seguramente...
dependera de los detalles que te animes a comentar... mas "en detalle"
(como el codigo al pulsar "el boton") -???-

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

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida