Datos de una Hoja a otra con parámetros
Hola he estado intentando realizar esto y no he podido:
Tengo unos datos en una Hoja1 por ejemplo:
Nombre Descripción
Jose Nada
Dam Nada
Dam
Jose
Luis Nada
Luis
Luis Nada
Y en otra hoja2 tengo estos datos
Mes Nombre Descripción
Agosto Jose Nada
Agosto Dam Nada
Agosto Dam
Julio Jose
Julio Luis Nada
Julio Luis
Julio Luis Nada
Quisiera que los datos de la hoja1 se copien a la hoja hoja con la condición de que elija el mes,
por ejemplo si elijo agosto que todos mis datos se copien o se traspasen y reemplacen en las celdas donde dice Agosto.
Gracias por su invaluable ayuda.
1 Respuesta
Pero qué quieres reemplazar exactamente.
Es decir, siguiendo con tu ejemplo, seleccionas Agosto, ¿y luego qué? En la hoja 1 tienes varios datos, ¿cómo sé cuáles debo tomar para actualizar la hoja2?
Sería más fácil de entender si pones 2 momentos, el primer momento sería cómo tienes la hoja2 antes de la macro, el segundo momento sería cómo queda la hoja2 después de la macro. De esa forma entendería qué es lo que se tiene que buscar en la hoja1 y qué se debe poner en la hoja2.
Saudos
Hola,
En la hoja 1 como mencione tengo estos datos,los cuales quiero pasar a la otra hoja pero pasa necesito una condicion y la condicion para que pueda copiarse a la otra hoja seria por mes, para ello necesito un imputbox donde ingrese cualquier mes y lo compare con el mes de la otra hoja, una vez compare el mes, si coincide que copie los datos o los chante en la misma celda.
Nombre Descripción
Jose Nada
Dam Nada
Dam
Jose
Luis Nada
Luis
Luis Nada
Y en otra hoja2 tengo estos datos
Mes Nombre Descripción
Agosto Jose Nada
Agosto Dam Nada
Agosto Dam
Julio Jose Nada
Julio Dam Nada
Julio Dam
Julio Jose
Julio Luis Nada
Julio Luis
Julio Luis Nada
Supongamos que ingreso julio en mi inputbox,los datos de la Hoja1 deberian pasarse al mes donde dice julio asi como esta mencionado arriba.
Saludos
Lo de la hoja1 me queda claro, por eso no pregunté.
Pero de la hoja2 te pedí que pusieras los datos antes de la macro y en otra imagen me pones los datos después de la macro, para saber qué es lo que voy a pasar.
¿Entonces hay que pasar todo lo que está en la hoja1 sólo que hay que poner en la columna A el mes que pusiste en el inputbox?
Claro todo lo que esta en la hoja1 hay que pasarlo a la hoja2, en la hoja2 ya tiene el mes:
Tengo esto y quiero pasarlo a la hoja2
Nombre Descripción
Jose Nada
Dam Nada
Dam
Jose
Luis Nada
Luis
Luis Nada
Y en otra hoja2 tengo estos datos
Mes Nombre Descripción
Agosto Jose Nada
Agosto Dam Nada
Agosto Dam
Julio Jose
Julio Luis Nada
Julio Luis
Julio Luis Nada
Lo que quiero hacer es como seria un "ACTUALIZAR", pues por ejemplo en mi hoja1 tengo unos datos y quiero actualizar el mes de JULIO por ejemplo, para ello tendría que que ingresar el mes de JULIO en el inputbox para que los datos se vayan a ese mes específicamente y se peguen los datos allí.
Al final quedaria asi:
Mes Nombre Descripción
Agosto Jose Nada
Agosto Dam Nada
Agosto Dam
Julio Jose Nada
Julio Dam Nada
Julio Dam
Julio Jose
Julio Luis Nada
Julio Luis
Julio Luis Nada
Saludos
psdt:El fin de la macro es que los datos puedan ser actualizables, no solo podría ingresar JULIO sino AGOSTO u otros meses que estén allí en la hoja2
Perdona, pero estoy confundido con los datos que estás poniendo. No sé si estás actualizando o estás incrementando datos.
En la hoja1 tienes esto:
Jose Nada
En la hoja2 tienes esto
Julio Jose
Después de ejecutar la macro en la hoja2 deberías tener esto:
Julio Jose Nada
Busco el nombre de Jose en la hoja 2 y le actualizo el valor.
No me queda claro que se debe hacer con los nombres que tienes duplicados.
En la hoja 1 tienes esto
Jose Nada
y
Jose
¿Cuándo actualicé la hoja2 a cuál josé le voy a poner qué valor?
Lo que sucede es que supongamos que tengo estos datos que yo quisiera que se actualicen(modifiquen o agreguen en caso haya más datos de los que yo había puesto), en la hoja2, como no voy a estar actualizando uno por uno y vieno mes por mes, solo quiero que la macro compare el mes que ingreses con el mes de la hoja2, entonces si encuentra el el mes en la hoja2 en la primera celda se peguen o chanten en los datos que ya están allí y si hay más datos que se agreguen.
Nuevamente:
Tengo esto que quiero que vayan a un determinado rango de meses
Nombre Descripción
Jose Nada
Dam Nada
Dam
Jose
Luis Nada
Luis
Luis Nada
Y en mi hoja2 tengo esto que no necesariamente empieza desde agosto sino desde enero y con muchos más datos:
Mes Nombre Descripción
Agosto Jose Nada
Agosto Dam Nada
Agosto Dam
Julio Jose
Julio Luis Nada
Julio Luis
Julio Luis Nada
Ahora para simplificar eso de buscar el mes manualmente y pegar los datos, pues creo una macro que me busque el mes, supongamos JULIO(mes), lo encontró entonces pegar los datos allí o transponer los datos en esas columnas en el orden de como están NOMBRE y DESCRIPCIÓN, es como pegar a la mala porque no sabría como hacer para que verique cada dato.
Y en otra hoja2 tengo estos datos
Mes Nombre Descripción
Agosto Jose Nada
Agosto Dam Nada
Agosto Dam
Julio Jose
Julio Luis Nada
Julio Luis
Julio Luis Nada
Entonces supongamos que estos datos al actualizar por mes antes "Jose" en descripción no tenia nada pero como pegue los datos de mi hoja1 AHORA APARECERÁ con el dato que tenga.
Mes Nombre Descripción
Agosto Jose Nada
Agosto Dam Nada
Agosto Dam
Julio Jose Nada
Julio Dam Nada
Julio Dam
Julio Jose
Julio Luis Nada
Julio Luis
Julio Luis Nada
Es por eso que vez datos agregados.
Saludos
Entonces, es como si borrara todos los datos de la hoja 2 que digan julio y luego copio todo lo de la hoja1 y le pongo en la columna A el mes de julio?
Claro, pero si es optimo borrar los datos que coincidan con el mes de julio para luego copiar los datos de la hoja1 a la hoja2 y agregándole el mes como explique anteriormente no habría problema.
Ahora, me queda una duda, ¿en la columna A de la hoja2 tienes la palabra "Julio" o tienes una fecha?
Te anexo la macro
Sub copiar() 'Por.Dante Amor Set h1 = Sheets("Hoja1") Set h2 = Sheets("Hoja2") ' mes = InputBox("Escribe el nombre del mes: ") ' Set b = h2.Columns("A").Find(mes) ' If Not b Is Nothing Then fila = b.Row For i = h2.Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1 If h2.Cells(i, "A") = mes Then h2.Rows(i).Delete End If Next ' u = h1.Range("A" & Rows.Count).End(xlUp).Row h1.Rows("2:" & u).Copy h2.Range("A" & fila).Insert Shift:=xlDown h2.Range("A" & fila & ":A" & fila + u - 2).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove h2.Range("A" & fila & ":A" & fila + u - 2) = mes ' Else ' u = h1.Range("A" & Rows.Count).End(xlUp).Row u2 = h2.Range("A" & Rows.Count).End(xlUp).Row + 1 h1.Rows("2:" & u).Copy h2.Range("A" & u2) h2.Range("A" & u2 & ":A" & u2 + u - 2).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove h2.Range("A" & u2 & ":A" & u2 + u - 2) = mes ' End If ' End Sub
Saludos.Dante Amor
Recuerda valorar la respuesta.
- Compartir respuesta