MAcro para copiar y pegar como valores hoja filtrada

Solo consultas sobre macros y código VBA Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

MAcro para copiar y pegar como valores hoja filtrada

Notapor williamromero » 11 Ago 2011 00:50

Buenas, este es mi primer post y espero conseguir ayuda.

Lo que necesito es una macro por medio de la cual teniendo una hoja filtrada, se pase de fila en fila, unicamente las filas visibles y copie y pegue toda la fila como valores, lo unico que he logrado hacer es copiar y pegar como valores la fila completa, pero no avanzar a la siguiente fila para hacer lo mismo.

ActiveCell.EntireRow.Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Gracias por su colaboracion.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
williamromero
Miembro Frecuente
Miembro Frecuente
 
Registrado: 11 Ago 2011 00:22

Re: MAcro para copiar y pegar como valores hoja filtrada

Notapor Adrian » 11 Ago 2011 10:39

Hola, puedes usar la grabadora de macros, con tu base filtrada, presionas Ctrl+i (ir especial) e indicas solo celdas visibles, copias y pegas en un destino.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Adrian
Moderator
Moderator
 
Registrado: 13 Jun 2004 17:24
Ubicación: Chamical La Rioja ARG

Re: MAcro para copiar y pegar como valores hoja filtrada

Notapor williamromero » 12 Ago 2011 00:04

Muchas gracias, pero tu respuesta no funciona, ya que de esta manera solo puedo copiar la region visible del filtro, pero la idea es luego de esto pegar esta misma region, en su posicion actual, pero como valores.
Voy a tratar de ilustraro con un ejemplo:

1 2
A 1 =2*2
B 2 =2*4
C 1 =2*6
D 2 =2*8
F 1 =2*10

La idea seria crear un fitro en y seleccionar unicamente las celdas que contienen 1 en la columna 1, luego seleccionar estos dato y pegarlos en esa misma posision como valor de esta manera tendrias como resultado

1 2
A 1 4
B 2 =2*4
C 1 12
D 2 =2*8
F 1 20

Espero me puedan ayudar, esto me ahorraria mas de 20 min, al día, por 5 días a la semana, serían como 100 min, al mes como 400 min, y al año ni hablar!!!!!
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
williamromero
Miembro Frecuente
Miembro Frecuente
 
Registrado: 11 Ago 2011 00:22

Re: MAcro para copiar y pegar como valores hoja filtrada

Notapor Adrian » 12 Ago 2011 08:54

Copiás, y te vas a pegado especial e indicas solo valores, todo esto grabando.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Adrian
Moderator
Moderator
 
Registrado: 13 Jun 2004 17:24
Ubicación: Chamical La Rioja ARG

Re: MAcro para copiar y pegar como valores hoja filtrada

Notapor williamromero » 13 Ago 2011 11:49

Adrian, he intentado hacer lo que me dices, sin embargo al tratar de pegar como valores en un rango filtrado me genera un error, "No se puede ejecutar este comando en selecciones multiples", aclaro que ya esta seleccionada la opcion Solo celdas visibles del menu Ir a especial. Por esto estaba intentando generar una macro que lo hiciera, no se si depronto me haga falta ejecutar alguna otra accion!

Gracias por tu colaboración. :!:
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
williamromero
Miembro Frecuente
Miembro Frecuente
 
Registrado: 11 Ago 2011 00:22

Re: MAcro para copiar y pegar como valores hoja filtrada

Notapor Antoni » 13 Ago 2011 12:16

Hola:

Si no he te entendido mal, lo que pretendes es eliminar las fórmulas de un rango filtrado.

Filtra el rango, selecciona el valor del filtro, selecciona el rango deseado, y ejecuta esta macro:

Código: Seleccionar todo
Sub EliminarFórmulas()
    For Each celda In Selection
       celda.Value = celda.Value
    Next
End Sub


Saludos
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Antoni
Miembro Frecuente
Miembro Frecuente
 
Registrado: 22 Dic 2009 04:58
Ubicación: GALICIA (ESPAÑA)

Re: MAcro para copiar y pegar como valores hoja filtrada

Notapor Cacho R » 13 Ago 2011 15:12

Hola! William.
Una sugerencia que no vendrá mal: ya que aplicas más de 20 minutos por día a este tema, ¿No crees que vale la pena tomarte 1 minuto más y subir al Foro un ejemplo concreto de lo que tienes?...

Te lo menciono pues la ausencia de tan elemental sostén a tu pregunta, es lo que ha alargado -innecesariamente- la resolución de tu tema.

¿Te animas?
Saludos, Cacho R.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Cacho R
Miembro Frecuente
Miembro Frecuente
 
Registrado: 23 Jun 2011 17:15
Ubicación: Buenos Aires

Re: MAcro para copiar y pegar como valores hoja filtrada

Notapor williamromero » 13 Ago 2011 16:35

Buenas, aca les dejo un ejemplo, en el archivo encontraran unos filas filtradas, la ides seria copiar estas y en la misma posicion que estan dejarlas pegadas como valor, adicionalmente las celdas que estan ocultas deben quedar como estan, es decir formuladas.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
williamromero
Miembro Frecuente
Miembro Frecuente
 
Registrado: 11 Ago 2011 00:22

Re: MAcro para copiar y pegar como valores hoja filtrada

Notapor williamromero » 13 Ago 2011 16:50

Antoni gracias por tu colaboracion, pero esta macro no funciona, ya que me esta pegando tambien como valores las celdas que quedan ocultas luego de realizar el filtro, básicamente lo único que haría falta para que funcionara es que verificara si la celda está visible u oculta por el filtro, voy a tratar de expresarlo con seudo codigo

Fila = 1
Mientras que Fila < 100 haga
si Fila.visible = si
Copiar toda la fila y pegarla como valores
Fin si
Fila = Fila +1
Fin mientras que.

Lo que trato de expresar es: Me posiciono en la primera fila, si esta visible por el filtro, la selecciono toda y la pego como valores, si no, paso a la siguiente fila.

Al final el resultado es, que las filas visibles por el filtro van a estar pebgadas todas como valores, y las ocultas, van a seguir siendo formuladas.

Grax por la atencion que me prestan.






Antoni escribió:Hola:

Si no he te entendido mal, lo que pretendes es eliminar las fórmulas de un rango filtrado.

Filtra el rango, selecciona el valor del filtro, selecciona el rango deseado, y ejecuta esta macro:

Código: Seleccionar todo
Sub EliminarFórmulas()
    For Each celda In Selection
       celda.Value = celda.Value
    Next
End Sub


Saludos
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
williamromero
Miembro Frecuente
Miembro Frecuente
 
Registrado: 11 Ago 2011 00:22

Re: MAcro para copiar y pegar como valores hoja filtrada

Notapor Antoni » 14 Ago 2011 08:03

Hola:

Así, si funciona :

Código: Seleccionar todo
Sub EliminarFórmulas()
    For Each celda In Selection.SpecialCells(xlCellTypeVisible)
       celda.Value = celda.Value
    Next
End Sub


Saludos
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Antoni
Miembro Frecuente
Miembro Frecuente
 
Registrado: 22 Dic 2009 04:58
Ubicación: GALICIA (ESPAÑA)

Re: MAcro para copiar y pegar como valores hoja filtrada

Notapor Cacho R » 14 Ago 2011 09:45

En la línea de lo que te muestra Antoni, e imaginando que pudieras tener más de una columna con fórmulas, podrías intentar:

Código: Seleccionar todo
Sub EliminarFórmulas_2()
Dim qCol As Byte, C As Range
Application.ScreenUpdating = False
With [a1].CurrentRegion
qCol = .Columns.Count
For Each C In .Columns(1).SpecialCells(xlCellTypeVisible)
  C.Resize(, qCol).Copy: C.PasteSpecial xlPasteValues
Next C
End With
Application.CutCopyMode = False: [a1].Select
Application.ScreenUpdating = True
End Sub

Saludos, Cacho R.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Cacho R
Miembro Frecuente
Miembro Frecuente
 
Registrado: 23 Jun 2011 17:15
Ubicación: Buenos Aires

Re: MAcro para copiar y pegar como valores hoja filtrada

Notapor williamromero » 23 Ago 2011 23:58

Cacho R, eres un capo, ya la probe con un archivo pequeño y funciona a la perfeccion, ahora vamos por los grandes pero creoq que no debe haber ningun inconveniente!!!

Muchas gracias, nos saben el tiempo que me van a ahorrar diariamente.

:D :wink:
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
williamromero
Miembro Frecuente
Miembro Frecuente
 
Registrado: 11 Ago 2011 00:22

Re: MAcro para copiar y pegar como valores hoja filtrada

Notapor Cacho R » 24 Ago 2011 01:57

williamromero escribió:... nos saben el tiempo que me van a ahorrar diariamente. :D :wink:

¡Qué así sea, y hasta la próxima!.
Cacho R.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Cacho R
Miembro Frecuente
Miembro Frecuente
 
Registrado: 23 Jun 2011 17:15
Ubicación: Buenos Aires


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot], Car88 y 15 invitados