Macro que pega datos con formato destino

He creado una macro que pega y ordena lo que copio en el portapapeles.. Pero me lo pega en un mismo sitio, necesito que lo pegue en donde yo ponga el cursor...

esta es la macro..

Sub PEGAR_ESPECIAL()
' PEGAR_ESPECIAL Macro
' Acceso directo: Ctrl+Mayús+P
ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
False, NoHTMLFormatting:=True
Rows("3:10").Select
Selection.Sort Key1:=Range("C3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

1 respuesta

Respuesta
1

Esta instrucción pega la información en donde tienes el cursor, si lo pones en la celda E12, ahí te pega la información. Pero si lo pegas en la celda E12, no se podrá ordenar, ya que ordena la información de la fila 3 a la 10.

ActiveSheet. PasteSpecial

¿O en dónde quieres poner el cursor?

Donde pongo el cursor vpara pegar, es donde quiero que pegue y ordene

Si pego en e12... que pegue, y lo que pegue que mantenga formato y ordene lo pegado..

Si pego en z60.. lo mismo

Siempre que pegue algo del portapapeles sea del tamaño que sea.. que lo pegue con formato destino y ordene por la tercera columna ascendente..

Te anexo la macro para ordenar por la tercera columna

Sub PEGAR_ESPECIAL()
'Act.Por.Dante Amor
    ' PEGAR_ESPECIAL Macro
    ' Acceso directo: Ctrl+Mayús+P
    ActiveSheet.PasteSpecial Format:="HTML", Link:=False, _
        DisplayAsIcon:=False, NoHTMLFormatting:=True
    '
    Set rango = Selection
    c = rango.Cells(1, 1).Column + 2
    f = rango.Cells(1, 1).Row
    rango.Sort Key1:=Cells(f, c), Order1:=xlAscending, Header:=xlGuess, _
               OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
               DataOption1:=xlSortNormal
End Sub

Me equivoque.. lo siento, esta macro es perfecta,, bueno casi, de lo que pego es posible que la ultima fila no la mueva del ultimo lugar, esta fila seria el total, y tiene que estar al final siempre.. pero la macro es correcta lo único que me ordena todo y mezcla la fila total, si te ayuda la primera celda de la ultima línea la que no se debe mover contiene el texto "Total"

Prueba con la siguiente:

Sub PEGAR_ESPECIAL()
'Act.Por.Dante Amor
    ' PEGAR_ESPECIAL Macro
    ' Acceso directo: Ctrl+Mayús+P
    ActiveSheet.PasteSpecial Format:="HTML", Link:=False, _
        DisplayAsIcon:=False, NoHTMLFormatting:=True
    '
    Set rango = Selection.Resize(Selection.Rows.Count - 1)
    c = rango.Cells(1, 1).Column + 2
    f = rango.Cells(1, 1).Row
    rango.Sort Key1:=Cells(f, c), Order1:=xlAscending, Header:=xlGuess, _
               OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
               DataOption1:=xlSortNormal
End Sub

Otra vez más tu ayuda fue perfecto...

Rápido y eficaz..

Muchas gracias...

Hola..

Por que al copiar esta macro en otro libro... cuando la ejecuto me abre el primer libro

Si tienes la macro asignada a un botón, en el nuevo, dale click derecho al botón y asigna la macro del mismo libro.

La tengo con un icono personalizado... y ya la asigno.. incluso la macro la puse dentro de un modulo antes la tenia en thiswoirkbook (más o menis)...

Solamente revisa que cuando la asignes, estés asignando la macro que está en el mismo libro.

O borra todas las macros del nuevo libro, crea un módulo, inserta la macro y luego asigna tu icono a la macro

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas