Problema con copiar y pegar

Hola Hola Expertos, buen dia.

Tengo un problema con mis macros, paso a contar, en el modulo ThisWorkbook tengo los siguientes códigos para desactivar el copiar y pegar y el botón derecho.

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Cancel = True
End Sub


Private Sub Workbook_Activate()
Application.MoveAfterReturnDirection = xlToRight
Application.OnKey "^" & "c", ""
Application.OnKey "^" & "x", ""
Application.OnKey "^" & "v", ""
Application.DisplayFullScreen = True
End Sub


Private Sub Workbook_Deactivate()
Application.MoveAfterReturnDirection = xlDown
Application.OnKey "^" & "c"
Application.OnKey "^" & "x"
Application.OnKey "^" & "v"
Application.DisplayFullScreen = False
End Sub

El problema surge cuando ejecuto esta otra macro que esta en el mismo libro que se clava en eel código "activeSheet.paste", como puedo solucionarlo?

desde ya muchas

Sub GuardaNota_ENVIODIARIO()
Application.ScreenUpdating = False
Dim rng As Range, nombre As String
Dim celdita As Range, nombr1 As String
Range("A1:K" & [c65536].End(xlUp).Row).Select
Application.ScreenUpdating = False
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Sheets("Hoja1").Select
Range("A6").Select
strnombre$ = InputBox("Ingrese el NÚMERO de archivo cronológico")
nombre = ThisWorkbook.Path & "\" & strnombre & "-" & "Autorizaciones fecha " & Format(Now, "dd-mm-yyyy") & ".xls"
ActiveWorkbook.SaveAs Filename:=nombre, Local:=True
ActiveWorkbook.Close False
MsgBox "Creado archivo: " & vbCrLf & nombre
Range("A6").Select
Range("M7") = strnombre$
Sheets("Interv. OE").Select
Range("AJ6000").End(xlUp).Offset(1, 0).Select
rowini = Range("AJ6000").End(xlUp).Offset(1, 0).Row
rowfin = Range("I12").End(xlDown).Offset(0, 0).Row
ActiveSheet.Unprotect "123"
For Each celditas In ActiveSheet.Range("AJ" & rowini & ":AJ" & rowfin)
celditas.Value = Date
Next celditas
ActiveSheet.Protect "123"
Sheets("ENVÍO").Select
Application.ScreenUpdating = True
End Sub

1 respuesta

Respuesta
1

El problema lo tendrás aún si no colocas esos eventos para desactivar el copiado, pegado, etc.

Probalo manualmente en cualquier libro: si seleccionás un rango, luego abris un libro nuevo... cuando intentes pegarlo notarás que ya se perdió lo copiado...

Lo correcto es abrir el libro (pasa a ser el libro activo), copiar el rango del libro anterior sin volverlo a seleccionar (podes guardar su nombre en una variable) y luego sigue el pegado.

Te dejo la 1er parte de tu macro:

Sub GuardaNota_ENVIODIARIO()
Application.ScreenUpdating = False
Dim rng As Range, nombre As String
Dim celdita As Range, nombr1 As String
'x Elsamatilde: guardo el nbre del libro para poder seleccionar rango y volver
libro1 = ActiveWorkbook.Name
Workbooks.Add
Workbooks(libro1).Sheets(1).Range("A1:K" & [c65536].End(xlUp).Row).Copy
Application.ScreenUpdating = False
'Selection.Copy
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'vuelvo al libro 1 ---- opcional
Workbooks(libro1).Activate
Sheets("Hoja1").Select
Range("A6").Select

Solo dejé Sheets(1) pero ajustala la instrucción con el nombre de tu hoja.

Hola Elsa!!!

Muchas gracias, es lo que quería hacer pero no me daba cuenta de como esquivar las desabilitaciones del copiar y pegar.

Muchas gracias de nuevo

Añade tu respuesta

Haz clic para o