Macro para copiar y pegar valores en celdas filtradas en Excel

A quién le ha pasado que aplicamos un filtro, ponemos una fórmula en las celdas filtradas y al final queremos copiar y pegar valores?

A mi sí. Y el resultado es que Excel no me deja copiar y valores en las celdas filtradas por que “No podemos pegar ya que el área Copiar y el área de pegado tienen formas distintdas”. Y tiene razón, pero si aún así deseamos copiar y pegar valores qué hacemos ?

Copiar y pegar valores en datos filtrados en Excel

Figura 1. Intentamos copiar y pegar valores en celdas filtradas.

Ver video Copiar y pegar en celdas filtradas

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

La solución

Ante la situación de no encontrar una manera nativa en Excel de pegar valores en celdas filtradas, me di a la tarea de crear un macro que prácticamente lo que hace es recorrer cada una de las celdas elegidas y evaluar si la celda está visible. Sí la celda está visible deja sólo el valor de la celda quitando la fórmula.

Ésta macro está incluída mi EXCELeINFO add-in.

Convertir valor de la celda en su valor calculado

Figura 2. EXCELeINFO addin, convertir valor de la celda en su valor calculado.

Plus – código de la macro

Y para que vean que los quiero mucho, les comparto el código de la macro.

Sub EXCELeINFOPegarValores()
Dim Celdas As Range
'
On Error GoTo Errores
'
If MsgBox("Desea convertir a valor las celdas seleccionadas?", vbQuestion + vbYesNo, AddIn) _
   = vbNo Then Exit Sub
'
Application.Calculation = xlCalculationManual
'
For Each Celda In Selection
    If Celda.EntireRow.Hidden = True Then
    Else
        Celda.Value = Celda.Value
    End If
Next Celda
'
Application.Calculation = xlCalculationAutomatic
'
Exit Sub
'
Errores:
Application.Calculation = xlCalculationAutomatic
MsgBox "Ha ocurrido un error: " & err.Description, vbExclamation, "EXCELeINFO"
End Sub

Descarga el archivo de ejemplo

Copiar y pegar en celdas filtradas – Repaso curso macros – EXCELeINFO.zip

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

2 thoughts on “Macro para copiar y pegar valores en celdas filtradas en Excel”

  1. ¡Me ha sido de gran utilidad tu código!
    Dado que mis datos están ordenados para que al filtrarlos los datos estén contiguos, he modificado tu código para actualizar valores por bloques:

    For Each celda In Selection
    If celda.EntireRow.Hidden = True Then
    Else
    Renglon_Inicial = ActiveCell.Row
    Exit For
    End If
    Next celda
    Selection.End(xlDown).Select
    Renglon_Final = ActiveCell.Row
    ‘ACTUALIZA VALORES
    Range(“F” & CStr(Renglon_Inicial) & “:” & “F” & CStr(Renglon_Final)).Value = NewValue

    Saludos.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top