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.

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

You may also like...