Buscar y Copiar en función del valor de una Celda

04/06/2007 - 23:12 por XavierFC | Informe spam
Llevo dias intentando lo siguiente, pero me he estancado.

Hoja1: Tengo una Celda (A1) en la que he metido una Validación (Datos/
Validación --> Lista). Esta lista son una serie de nombres que tengo
más abajo en la hoja (José, Luis, María, Manuel, Pepe). Por ejemplo
escojo el nombre "Manuel".

Lo que necesito es crear una macro que me busque el valor de esa celda
(en este caso Manuel, en otro caso pues Maria,etc..) en la Hoja2 y una
vez lo encuentre, pongamos la celda (B53), coja y me copie de la B53
hasta la Z80 y me lo vuelva a pegar a partir de la celda A10 en la
Hoja1.

Llevo días peléandome con la Macro pero no lo consigo, prefiero no
pegar código porque seguro que es algo bastante fácil. Os pido vuestra
ayuda porque estoy algo desesperadillo.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
05/06/2007 - 07:21 | Informe spam
hola, Xavier !

Hoja1: Tengo una Celda (A1) en la que he metido una Validacion (Datos/ Validacion --> Lista).
Esta lista son una serie de nombres que tengo mas abajo en la hoja (Jose, Luis, Maria, Manuel, Pepe).
Por ejemplo escojo el nombre "Manuel".
Lo que necesito es crear una macro que me busque el valor de esa celda... en la Hoja2
y una vez lo encuentre, pongamos la celda (B53), coja y me copie de la B53 hasta la Z80
y me lo vuelva a pegar a partir de la celda A10 en la Hoja1...



serviria si comentas algunos detalles que parecen haberse quedado 'en el tintero' [p.e.]

1) que relacion hay entre el nombre seleccionado en hoja1!a1 y la celda [p.e.] b53 en la hoja2 ?
y si seran siempre 'tablas' [p.e.] de 28 filas por 25 columnas ?

2) todo cambio de seleccion debiera irse siempre a la celda 'A10' en la hoja 1 ?
o requieres que sean pases al siguiente espacio libre por cada cambio de nombres en la celda 'A1' de la hoja 1 ?

comentas [si hubiera] algun detalle de 'impacto' para alguna propuesta mas... 'concreta' ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 XavierFC
05/06/2007 - 15:16 | Informe spam
1) La relación entre el nombre seleccionado (celda a1 de hoja1) y la
celda b53 (hoja 2) es que ambas contienen el mismo Nombre o palabra, o
sea, es el mismo nombre. Siempre serán tablas lo que copie.

2) Todo lo copiado (que variará en función del nombre escogido) debe
ir a A10 (hoja1).

El mayor problema que he tenido es que una vez ha hecho la búsqueda en
la hoja2, entonces no sé como hacerlo para que me copie la tabla de
celdas correspondiente cada vez que le cambio el nombre a la Celda A1
(hoja1).

Es decir, en la hoja2 tengo unas fichas personales (que ocupan X filas
y columnas) y quiero que cuando en A1 ponga uno de los nombres de la
lista de validación (manuel, pepe, josefa...) me busque ese nombre en
hoja2 copie la ficha y me la pegue entera en hoja1.

Saludos.


serviria si comentas algunos detalles que parecen haberse quedado 'en el tintero' [p.e.]

1) que relacion hay entre el nombre seleccionado en hoja1!a1 y la celda [p.e.] b53 en la hoja2 ?
y si seran siempre 'tablas' [p.e.] de 28 filas por 25 columnas ?

2) todo cambio de seleccion debiera irse siempre a la celda 'A10' en la hoja 1 ?
o requieres que sean pases al siguiente espacio libre por cada cambio de nombres en la celda 'A1' de la hoja 1 ?

comentas [si hubiera] algun detalle de 'impacto' para alguna propuesta mas... 'concreta' ?
saludos,
hector.
Respuesta Responder a este mensaje
#3 Héctor Miguel
06/06/2007 - 06:36 | Informe spam
hola, Xavier !

El mayor problema que he tenido es que una vez ha hecho la busqueda en la hoja2
entonces no se como hacerlo para que me copie la tabla de celdas correspondiente
cada vez que le cambio el nombre a la Celda A1 (hoja1).
Es decir, en la hoja2 tengo unas fichas personales (que ocupan X filas y columnas)
y quiero que cuando en A1 ponga uno de los nombres de la lista de validacion (manuel, pepe, josefa...)
me busque ese nombre en hoja2 copie la ficha y me la pegue entera en hoja1.



1) 'encontrar' en cual celda de la columna 'B' de la hoja2 se localiza [si existe] al dato de 'A1' de la hoja1...
[teoricamente] no debiera significar problema ninguno [existen varias formas de buscar/encontrar/informar]

2) el 'detalle' esta [precisamente] en 'como' decirle al codigo que la 'tabla' correspondiente al dato encontrado...
debe considerarla de X_filas y X_columnas :))

3) *aqui es donde*... se requiere que expongas algunos detalles adicionales -?-
[algun 'patron' para asociar cada nombre con X_tabla de X_filas y X_columnas ???]
-> como podria 'detectar' el codigo el rango aplicable a la tabla de cada nombre ???

comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 XavierFC
07/06/2007 - 01:25 | Informe spam
Lo voy a simplificar.

En la hoja2 hay 50 "fichas" con datos personales, como si fueran
carnets de DNI. Cada ficha ocupa 10 columnas de ancho y 10 filas de
alto. La ficha de Pepe va de A1 hasta J10, la de Maria de A20 a J30,
la de Manuel de A40 a J50, etc... En la primera fila de cada ficha
está el nombre (Manuel, Maria, Pepe...), todas son iguales de tamaño y
entre ellas hay 9 filas vacias.

Lo único que necesito es que cuando le indico en la validación el
nombre "Manuel", y clique en el botón de ejecutar la macro, ésta vaya
a Hoja2, encuentre "Manuel"(A40) y me copie de A40 a J50 y me lo pegue
en hoja1 y así igual para cada uno de los nombres. En la hoja1 siempre
me lo pegará en las mismas celdas: B30:K11

Yo he conseguido que me busque "Manuel" y me pegue la casilla "A40" de
hoja2, en la hoja1, pero no se como hacer para que me copie de A40 a
J50, es decir, toda la ficha (en este ejemplo es A40:J50, pero
buscando otro nombre puede ser A150:J160, claro)

Gracias por tu paciencia.
Respuesta Responder a este mensaje
#5 Héctor Miguel
07/06/2007 - 02:11 | Informe spam
hola, Xavier !

Lo voy a simplificar.



en la 'simpiflicacion'... queda 'el detalle' [a veces 'perdido' y a veces 'expuesto'] :))

a) con la 'validacion' de datos en la celda 'A1' de la hoja1
b) el siguiente ejemplo 'pega' 10 filas x 10 columnas de la hoja2 a partir de la celda 'A10' [de la hoja1]
[segun donde se encuentre en la hoja2 el nombre solicitado en la hoja1 por la celda 'A1'] <= tu consulta original
c) donde me he quedado 'perdido'... es en si son 'tablas' de 10 o de 11 filas ???

copia/pega lo siguiente -> en el modulo de codigo de la hoja1

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
With Worksheets("hoja2")
.Columns("a").Find(Target).Resize(10, 10).Copy _
Destination:=Range("a10")
End With
End Sub

nota: es probable que pudieras evitar el uso de macros [conociendo mayores detalles acerca del contenido de 'las tablas'] -?-

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la consulta original __
En la hoja2 hay 50 "fichas" con datos personales, como si fueran carnets de DNI.
Cada ficha ocupa 10 columnas de ancho y 10 filas de alto.
La ficha de Pepe va de A1 hasta J10, la de Maria de A20 a J30, la de Manuel de A40 a J50, etc...
En la primera fila de cada ficha esta el nombre (Manuel, Maria, Pepe...), todas son iguales de tama#o y entre ellas hay 9 filas vacias.
Lo unico que necesito es que cuando le indico en la validación el nombre "Manuel", y clique en el boton de ejecutar la macro
esta vaya a Hoja2, encuentre "Manuel"(A40) y me copie de A40 a J50 y me lo pegue en hoja1 y asi igual para cada uno de los nombres.
En la hoja1 siempre me lo pegara en las mismas celdas: B30:K11
Yo he conseguido que me busque "Manuel" y me pegue la casilla "A40" de hoja2, en la hoja1
pero no se como hacer para que me copie de A40 a J50, es decir, toda la ficha
(en este ejemplo es A40:J50, pero buscando otro nombre puede ser A150:J160, claro)
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida