Pegar una lista de valores sólo en celdas visibles

yomisma2000

New Member
Joined
Feb 29, 2020
Messages
3
Office Version
  1. 365
Platform
  1. Windows
Buenos días!

Quería saber si existía alguna forma de pegar una lista de por ejemplo 5 valores consecutivos de una columna que hay en una hoja en otra hoja que está filtrada y conseguir que pegue esos valores solo en las celdas visibles de esa hoja. A la hora de pegar en la hoja destino selecciono sólo celdas visibles, pero no funciona.. los pega en todas las celdas que hay entre medias también.

Esto solo me funciona si tengo solo un valor que quiero pegar en varias celdas no consecutivas, selecciono celdas visibles y lo hace bien. Pero si es una lista de x valores y selecciono las celdas visibles donde quiero que vayan (el mismo numero de celdas, claro), no funciona.

Gracias
 

Excel Facts

How can you automate Excel?
Press Alt+F11 from Windows Excel to open the Visual Basic for Applications (VBA) editor.
Hola @yomisma2000 y bienvenida a MrExcel.

Una opción podría ser con una macro.

Prueba con la siguiente macro. Al ejecutarla, primero debes seleccionar las celdas a copiar, presionar enter, después seleccionar el igual número de celdas donde vas a pegar, presionas enter y la macro pone los valores en las celdas destino.

Si el número de celdas destino no es igual al número de celdas copiadas te envía un mensaje:

VBA Code:
Sub copiar_pegar_visibles()
  Dim rng1 As Range, rng2 As Range, c As Range
  Dim n1 As Long, n2 As Long, i As Long
  
  On Error Resume Next
  With Application
    Set rng1 = .InputBox("Selecciona el rango a copiar", Default:=Selection.Address, Type:=8)
    If rng1 Is Nothing Then Exit Sub
    
    Set rng2 = .InputBox("Selecciona el rango para pegar", Default:=Selection.Address, Type:=8)
    If rng2 Is Nothing Then Exit Sub
  End With
  On Error GoTo 0
  
  n1 = rng1.Columns(1).SpecialCells(xlCellTypeVisible).Count
  n2 = rng2.Columns(1).SpecialCells(xlCellTypeVisible).Count
  If n1 = n2 Then
    For Each c In rng2.Columns(1).SpecialCells(xlCellTypeVisible).Cells
      i = i + 1
      c.Value = rng1.Cells(i)
    Next
  Else
    MsgBox "El número de filas a pegar es distinto"
  End If
End Sub

-----
Nota Macro:
Si eres nueva en macros, realiza lo siguiente:​
1. Abre tu archivo de excel​
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11​
3. En el menú elige Insertar / Módulo​
4. En el panel del lado derecho copia la macro​
5. Para ejecutarla presiona F5​
-----


Avísame el resultado de las pruebas y estaré de regreso tan pronto pueda.
Saludos
Dante Amor
 
Upvote 0

Forum statistics

Threads
1,223,893
Messages
6,175,248
Members
452,623
Latest member
cliftonhandyman

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top