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

Macro para filtrar datos y pegar valores en otra celda

917 views
Skip to first unread message

andrea

unread,
Sep 28, 2009, 1:39:14 AM9/28/09
to
Hola, es la primer vez que les escribo, estuve leyendo bastante esta
pagina y me resulta muy completa. Mi motivo por el cual les escribo es
el siguiente. Necesito urgente terminar una planilla en excel 2003
para el trabajo. La planilla consta de dos hojas llamadas "RESUMEN" y
"DISTR HS". en la primera tengo un listado de personas con las tareas
realizadas por cada dia del mes (los nombres en la columna A se van
repitiendo por cada dia (son alrededor de 400 filas por mes) en la
columna B estan las horas trabajadas por dia. En la hoja DISTR HS
figuran los nombres (solo una vez), el total de las hs mensuales y en
la columna F el VALOR HORA. Lo que necesito es pegar de una hoja a
otra el valor de cada hora para cada empleado. p.ej.

Hoja DISTR HS
A C F
Ramon 213 hs 10,5
Lorenzo 186 hs 9,6 etc

En la hoja RESUMEN
Cada vez que en la columna A figure el nombre Ramon que me copie el
valor 10,5 en la celda correspondiente en la columna E p.ej.

A E
Ramon 10,5
Ramon 10,5
Lorenzo 9,6
Ramon 10,5
Lorenzo 9,6
Lorenzo 9,6 etc.

Ya que luego necesito sacar totales segun la tarea que realizaron
durante el mes. Espero me haya explicado bien y se pueda entender el
trabajo que necesito realizar. Agradezco anticipado toda la ayuda que
me puedan ofrecer. Gracias

Juan M

unread,
Sep 28, 2009, 4:42:09 AM9/28/09
to

"andrea" escribi�

Hola Andrea,

En la exposici�n que haces no queda claro porque necesitas copiar todas las
veces el valor de cada persona con sus horas, ese valor ya lo tienes en la
otra hoja. Emplea la hoja resumen para hacer los totales. Puedes emplear una
tabla din�mica para realizar todos esos totales.

Si de todas formas quieres hacerlo con macros, la pregunta es �cual ser�a el
criterio para pegar los valores en su correspondiente nombre, solo su
existencia?
�Siempre ser�a el mismo valor para cada vez que exista Ramon o Lorenzo? eso
significar�a que en la hoja DSTR HS solo hay valores �nicos.
En tal caso podr�as emplear funciones de b�squeda Buscarv,
indice/coincidir...

Comentas los detalles?

Un saludo,
Juan

andrea

unread,
Sep 28, 2009, 5:05:36 AM9/28/09
to
On 28 sep, 04:42, "Juan M" <jumo...@NOSPAMhotmail.com> wrote:
> "andrea" escribió
> En la exposición que haces no queda claro porque necesitas copiar todas las

> veces el valor de cada persona con sus horas, ese valor ya lo tienes en la
> otra hoja. Emplea la hoja resumen para hacer los totales. Puedes emplear una
> tabla dinámica para realizar todos esos totales.
>
> Si de todas formas quieres hacerlo con macros, la pregunta es ¿cual sería el

> criterio para pegar los valores en su correspondiente nombre, solo su
> existencia?
> ¿Siempre sería el mismo valor para cada vez que exista Ramon o Lorenzo? eso
> significaría que en la hoja DSTR HS solo hay valores únicos.
> En tal caso podrías emplear funciones de búsqueda Buscarv,

> indice/coincidir...
>
> Comentas los detalles?
>
> Un saludo,
> Juan- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -


Hola Juan, en realidad necesito pasar los valores de las horas tantas
veces se repita el nombre porque en otra columna de la hoja RESUMEN
tengo las tareas realizadas que son varias por dia, luego al pegar
esos valores necesito filtrar el gasto total de cada tarea realizada
en el mes. p.ej. La tarea Manten. General sumaria todos los valores de
las distintas personas que hicieron esa tarea. Esto es porque en otra
planilla me suma los gastos totales de cada tarea realizada en el
mes. Espero haberme explicado y agradezco tu pronta respuesta. Saludos

Juan M

unread,
Sep 28, 2009, 12:21:56 PM9/28/09
to
Hola Andrea,

Seguro que hay m�s cosas detr�s de tu consulta y que el c�digo que te
propongo se puede optimizar mucho m�s, si se pudieran emplear filtros,
agrupaciones u otro tipo de arreglo de datos.

El c�digo, p�galo en un m�dulo est�ndar:

Sub copiaPega()

Dim i As Long
Dim celda As Range
Dim RangoBusqueda As Range

With Worksheets("DISTR HS")
Set RangoBusqueda = .Range("A2:A" & _
Range("A" & .Rows.Count).End(xlUp).Row)
End With

i = 2

Do While Worksheets("Resumen").Range("A" & i) <> ""
Set celda = RangoBusqueda.Find( _
Worksheets("Resumen").Range("A" & i), _
LookIn:=xlValues, lookat:=xlWhole)
Worksheets("Resumen").Range("E" & i) = celda.Offset(, 5)
i = i + 1
Loop

End Sub

Un saludo,
Juan

"andrea" escribi�
On 28 sep, 04:42, "Juan M" wrote:
> "andrea" escribi�

> En la exposici�n que haces no queda claro porque necesitas copiar todas

> las
> veces el valor de cada persona con sus horas, ese valor ya lo tienes en la
> otra hoja. Emplea la hoja resumen para hacer los totales. Puedes emplear
> una

> tabla din�mica para realizar todos esos totales.
>
> Si de todas formas quieres hacerlo con macros, la pregunta es �cual ser�a

> el
> criterio para pegar los valores en su correspondiente nombre, solo su
> existencia?

> �Siempre ser�a el mismo valor para cada vez que exista Ramon o Lorenzo?
> eso


> significar�a que en la hoja DSTR HS solo hay valores �nicos.

> En tal caso podr�as emplear funciones de b�squeda Buscarv,

andrea

unread,
Sep 30, 2009, 9:06:57 PM9/30/09
to
On 28 sep, 13:21, "Juan M" <jumo...@NOSPAMhotmail.com> wrote:
> Hola Andrea,
>
> Seguro que hay más cosas detrás de tu consulta y que el código que te
> propongo se puede optimizar mucho más, si se pudieran emplear filtros,

> agrupaciones u otro tipo de arreglo de datos.
>
> El código, pégalo en un módulo estándar:

>
> Sub copiaPega()
>
> Dim i As Long
> Dim celda As Range
> Dim RangoBusqueda As Range
>
> With Worksheets("DISTR HS")
>     Set RangoBusqueda = .Range("A2:A" & _
>                 Range("A" & .Rows.Count).End(xlUp).Row)
> End With
>
> i = 2
>
> Do While Worksheets("Resumen").Range("A" & i) <> ""
>     Set celda = RangoBusqueda.Find( _
>             Worksheets("Resumen").Range("A" & i), _
>             LookIn:=xlValues, lookat:=xlWhole)
>     Worksheets("Resumen").Range("E" & i) = celda.Offset(, 5)
>     i = i + 1
> Loop
>
> End Sub
>
> Un saludo,
> Juan
>
> "andrea" escribió

> On 28 sep, 04:42, "Juan M" wrote:
>
>
>
>
>
> > "andrea" escribió
> > En la exposición que haces no queda claro porque necesitas copiar todas

> > las
> > veces el valor de cada persona con sus horas, ese valor ya lo tienes en la
> > otra hoja. Emplea la hoja resumen para hacer los totales. Puedes emplear
> > una
> > tabla dinámica para realizar todos esos totales.
>
> > Si de todas formas quieres hacerlo con macros, la pregunta es ¿cual sería

> > el
> > criterio para pegar los valores en su correspondiente nombre, solo su
> > existencia?
> > ¿Siempre sería el mismo valor para cada vez que exista Ramon o Lorenzo?
> > eso

> > significaría que en la hoja DSTR HS solo hay valores únicos.
> > En tal caso podrías emplear funciones de búsqueda Buscarv,

> > indice/coincidir...
>
> > Comentas los detalles?
>
> > Un saludo,
> > Juan- Ocultar texto de la cita -
>
> > - Mostrar texto de la cita -
>
> Hola Juan, en realidad necesito pasar los valores de las horas tantas
> veces se repita el nombre porque en otra columna de la hoja RESUMEN
> tengo las tareas realizadas que son varias por dia, luego al pegar
> esos valores necesito filtrar el gasto total de cada tarea realizada
> en el mes. p.ej. La tarea Manten. General sumaria todos los valores de
> las distintas personas que hicieron esa tarea. Esto es porque en otra
> planilla me suma los gastos  totales de cada tarea realizada en el
> mes. Espero haberme explicado y agradezco tu  pronta respuesta. Saludos- Ocultar texto de la cita -

>
> - Mostrar texto de la cita -

Hola Juan, Estuve probando la ayuda que me enviaste. EXCELENTE. En
cinco minutos resolviste lo que no supe hacer en mas de dos semanas.
Te agradezco enormemente haber podido solucionar este problema para
mi. FELICITACIONES. y Gracias.

Saludos Andrea

0 new messages