Exibe uma mensagem se o usuário tentar colar mais de 2000 linhas em uma planilha do Excel

0

Estou usando o Excel 2013 para criar uma pasta de trabalho que será preenchida por um usuário final. Sinceramente, tenho muitas validações, portanto, quando o usuário está tentando colar mais de 2000 linhas, é necessário muito tempo.

Meu problema não é com o desempenho, só quero exibir um message box se o usuário estiver tentando colar mais de 2000 linhas . Procurei no Google, mas não consegui encontrar informações sobre isso.

    
por Mohammed Abusaif 09.08.2016 / 09:25

2 respostas

1

Desculpas, este não é o código da resposta, mas é uma abordagem.

Basicamente, isso vai ser difícil, já que você não tem uma maneira fácil de dizer quando o usuário está prestes a colar dados. Obter os dados da área de transferência não é tão difícil, mas interceptar a pasta é.

Para recuperar os dados da área de transferência, consulte o seguinte artigo do MSDN artigo .

Para interceptar a pasta, uma ideia seria examinar a renderização atrasada, conforme mencionado em esta resposta do StackOverflow.

Pode ser mais fácil ter um botão 'Verificar área de transferência' que seus usuários pressionam antes de colar?

    
por 09.08.2016 / 10:45
-1
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim sLastOp As String
 Dim cell As Range
 Dim a As Integer
 Dim Row As Range
  a = 0
 For Each Row In Range(Target.Cells.Address)
    If InStr(Row.Address, "A") Then
        a = a + 1
    End If
Next
 '--get the last operation from the undo stack
 sLastOp = Application.CommandBars("Standard").FindControl(ID:=128).List(1)
 Select Case sLastOp
   '--if last operation was Paste or PasteSpecial, display message
   Case "Paste", "Paste Special"
   If a > 200 Then MsgBox "Please wait till pasting finishes." & a, vbOKOnly
   Case Else 'do nothing
 End Select
End Sub

Pegue este código e coloque-o em uma nova planilha, ele funcionará 100% na colagem e você poderá modificar a mensagem como quiser.
Mas, honestamente, se você está tentando excluir mais de 2000 linhas, um erro aparecerá. Outro problema que eu não pude colocar este código para o meu código de folha Eu não sei qual é o problema que não está funcionando.

    
por 10.08.2016 / 10:04