Excel - Colar invertido

Anônima
2011-12-03T15:09:55+00:00

É possivel copiar e colar na ordem inversa? Informo que não são dados que podem ser classificados. Tem uma planilha com vários Nomes (240 pessoas), na qual devo copiar e colar na vertical e na ordem inversa. Tudo isso está linkado com fórmulas.

Microsoft 365 e Office | Excel | Para uso doméstico | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários
Resposta aceita pelo autor da pergunta
Anônima
2011-12-06T13:50:17+00:00

Talvez isto possa ajudar

Sub colarInvertido()

    Dim rngOrigin As Range, rngDest As Range

    Dim i As Long

    With Selection

        If .Rows.Count = 1 Or .Columns.Count <> 1 Then Exit Sub

        Set rngOrigin = Selection

    End With

    On Error Resume Next

    Set rngDest = Application.InputBox(Prompt:="Selecione o Destino", _

                Title:="Copia invertido", Type:=8)

    If rngDest Is Nothing Then Exit Sub

    With rngOrigin

        For i = 1 To .Rows.Count

            rngDest.Cells(i).Formula = .Cells(.Rows.Count - i + 1).Formula

        Next i

    End With

End Sub

Para usar:

Selecione um intervalo vertical (algumas linhas)

Rode a macro

Quando solicitado, selecione a célula superior do intervalo de destino

Ok

Espero que ajude

M.

Esta resposta foi útil?

2 pessoas acharam esta resposta útil.
0 comentários Sem comentários
Resposta aceita pelo autor da pergunta
Anônima
2011-12-05T15:37:38+00:00

http://felipebenza.wordpress.com/2011/12/05/copiar-lista-para-destino-invertida/

Considerando que a origem está em A1:A9 e destino B1:

Sub ColarInvertido() Const sOrigem As String = "A1:B9" Const sDestino As String = "C1"

Dim rng As Range Dim l As Long Dim lTotal As Long

Application.Calculation = xlCalculationManual Application.ScreenUpdating = False With ActiveSheet lTotal = .Range(sOrigem).Columns(1).Cells.Count For l = 1 To lTotal 'Se quiser copiar apenas valores, use o formato abaixo: '.Range(sDestino).Offset(lTotal - l) = _ .Range(sOrigem).Cells(1).Offset(l - 1)

'Se quiser copiar toda formatação e fórmula, use a forma abaixo: .Range(sOrigem).Cells(1).Offset(l - 1). _ Resize(, .Range(sOrigem).Columns.Count).Copy _ Destination:=.Range(sDestino).Offset(lTotal - l)

'Se quiser copiar a fórmula sem a formatação, use: '.Range(sOrigem).Cells(1).Offset(l - 1).Copy '.Range(sDestino).Offset(lTotal - l).PasteSpecial xlFormulas Next l End With Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic

End Sub

Esta resposta foi útil?

0 comentários Sem comentários

1 resposta adicional

Classificar por: Mais útil
  1. Anônima
    2011-12-05T03:48:36+00:00

    Teria que copiar também as fórmulas? Como são elas?

    M.

    Esta resposta foi útil?

    0 comentários Sem comentários