Mostrar un mensaje si el usuario intenta pegar más de 2000 filas en una hoja de Excel

Mostrar un mensaje si el usuario intenta pegar más de 2000 filas en una hoja de Excel

estoy usandoexcel 2013Para crear un libro de trabajo que será llenado por un usuario final, honestamente, tengo muchas validaciones, por lo que cuando el usuario intenta pegar más de 2000 filas, lleva mucho tiempo.

Mi problema no es con el rendimiento, solo quiero mostrar un mensaje message boxsi el usuario intenta pegar más de2000 filas. Lo busqué en Google pero no encontré información al respecto.

Respuesta1

Disculpas, este no es el código para la respuesta, pero es un enfoque.

Básicamente, esto va a ser difícil, ya que no hay una manera fácil de saber cuándo el usuario está a punto de pegar datos. Obtener los datos del portapapeles no es tan difícil, pero interceptar el pegado sí lo es.

Para recuperar los datos del portapapeles, consulte el siguiente MSDNartículo.

Para interceptar la pasta, una idea sería considerar el renderizado retrasado como se menciona enesteRespuesta de StackOverflow.

¿Podría ser más fácil tener un botón 'Verificar portapapeles' que sus usuarios presionen antes de pegar?

Respuesta2

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

Toma este código y ponlo en una hoja nueva, funcionará al 100% al pegarlo y podrás modificar el mensaje como quieras.
Pero, sinceramente, si intentas eliminar más de 2000 filas, aparecerá un error.
Otro problema: no pude poner este código en el código de mi hoja. No sé cuál es el problema, no funciona.

información relacionada