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 ?
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.
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.