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!

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.
williamromero
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 8
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.
Avatar de Usuario
Adrian
Moderator
Moderator
 
Mensajes: 5847
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!!!!!
williamromero
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 8
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.
Avatar de Usuario
Adrian
Moderator
Moderator
 
Mensajes: 5847
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. :!:
williamromero
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 8
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
Avatar de Usuario
Antoni
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 2834
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.
Avatar de Usuario
Cacho R
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 4916
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.
williamromero
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 8
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
williamromero
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 8
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
Avatar de Usuario
Antoni
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 2834
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.
Avatar de Usuario
Cacho R
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 4916
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:
williamromero
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 8
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.
Avatar de Usuario
Cacho R
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 4916
Registrado: 23 Jun 2011 17:15
Ubicación: Buenos Aires

Re: MAcro para copiar y pegar como valores hoja filtrada

Notapor scastillos » 09 Ene 2015 07:38

Estimados, tengo una macro que lo que hace es copiar las celdas visibles de una columna en las celdas visibles de otra columna, pero me inconveniente es que quiero que me las pege como "solo valores". Agradezco me pueda ayudar.
Aquí les dejo los códigos

Private Sub CommandButton1_Click()
Dim areaIni As Range, cellPiv As Range
Dim C As Range, Rng As Range
Dim i&, j&, qCol%

On Error Resume Next
Set areaIni = Application.InputBox("Selecciona las celdas a copiar", Type:=8)
If areaIni Is Nothing Then Exit Sub
Set areaIni = areaIni.SpecialCells(xlCellTypeVisible)

Set cellPiv = Application.InputBox("Seleccione la primera celda donde pegar" & vbLf & "los datos", Type:=8)
If cellPiv Is Nothing Then Exit Sub
On Error GoTo 0
Application.ScreenUpdating = False
With cellPiv
Set cellPiv = .Parent.Range(cellPiv, .Parent.Cells(Rows.Count, .Column)).SpecialCells(xlCellTypeVisible)
End With
qCol = areaIni.Columns.Count: i = 1: j = 0

For Each Rng In areaIni.Areas
For Each C In Rng.Columns(1).Cells
j = 1 + j
If cellPiv.Areas(i).Cells.Count < j Then i = 1 + i: j = 1

C.Resize(1, qCol).Copy: C.Resize(1, qCol).Copy cellPiv.Areas(i).Cells(j)
Next C
Next Rng
Application.ScreenUpdating = True
End Sub
scastillos
Miembro Nuevo
Miembro Nuevo
 
Mensajes: 1
Registrado: 09 Ene 2015 07:34


Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: anibal3 y 9 invitados