Eliminar el coetenido del portapapeles

Me podrías ayudar realice esta macro para copiar información de un libro a otro el problema que tengo es que cuando termina me sale un mensaje que me dice que hay gran cantidad de información en el portapapeles haga clic en si para guardar y no para borrar el contenido lo que quiero es que no me aparezca este mensaje y que a través de esta macro se pueda hacer que cada vez que haga la copia se borre el contenido del portapapeles o se libere memoria no conozco mucho de macros en excel esroy aprendiendo por favor lo necesito urgente es para mi trabajo
Gracias de antemano por tu ayuda
Un saludo
Yalena
Sub sede1()
Workbooks.Open Filename:="D:\yalena\Nueva carpeta\basededatos\sedeCuotas.xls"
Workbooks.Open Filename:="D:\yalena\Nueva carpeta\basededatos\facturas.xls"
Workbooks("sedecuotas.xls").Activate
Sheets("GENERAR ANEXOS Consulta").Range("d2:f16").Select
Selection.Copy
Workbooks("facturas.xls").Activate
Sheets("60FACT028106ANEXO1").Activate
Range("b12:d26").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, skipBlanks:=False, Transpose:=False
'copiar trafico
Workbooks("sedecuotas.xls").Activate
Sheets("GENERAR ANEXOS Consulta").Range("d17:f26").Select
Selection.Copy
Workbooks("facturas.xls").Activate
Sheets("60FACT028106ANEXO1").Activate
Range("b33:d42").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, skipBlanks:=False, Transpose:=False
End Sub

2 respuestas

Respuesta
1
Solamente tienes que añadir la siguiente línea después del último PasteSpecial:
Application.CutCopyMode = False
(Esto es lo mismo que oprimir Escape luego de una copia para que el Modo de Copia termine)
Hola me ha funcionado el código que me enviaste muchas gracias
Lo único que en cada hoja se queda seleccionado el rango a copiar no se como hacer para que en cada hoja no se quede seleccionado el rango copiado
Un saludo
Yalena
Puedes seleccionar al final, solamente la celda que quieras, por ejemplo:
Range("A1").select
Otra manera de no cambiar la selección cuando estás copiando y pegando, es realizar esta acción sin seleccionar los datos, por ejemplo en tu rutina:
Sub sede1()
Workbooks.Open Filename:="D:\yalena\Nueva carpeta\basededatos\sedeCuotas.xls"
Workbooks.Open Filename:="D:\yalena\Nueva carpeta\basededatos\facturas.xls"
Workbooks("sedecuotas.xls").Activate
Sheets("GENERAR ANEXOS Consulta"). Range("d2:f16"). Copy
Workbooks("facturas.xls").Activate
Sheets("60FACT028106ANEXO1"). Activate
Range("b12:d26").PasteSpecial Paste:=xlValues, Operation:=xlNone, skipBlanks:=False, Transpose:=False
'copiar trafico
Workbooks("sedecuotas.xls").Activate
Sheets("GENERAR ANEXOS Consulta"). Range("d17:f26"). Copy
Workbooks("facturas.xls").Activate
Sheets("60FACT028106ANEXO1"). Activate
Range("b33:d42").PasteSpecial Paste:=xlValues, Operation:=xlNone, skipBlanks:=False, Transpose:=False
End Sub
Esto hace lo mismo sin seleccionar ni el rango a copiar ni el rango a pegar.
Hola Buenos días gracias por tu ayuda me ha funcionado bien la macro
Por favor me podrías indicar de un manual para aprender macros en excel ya que para mi trabajo lo nececesito
Un saludo
yalena
En Internet tienes muchos manuales, pero no son muy satisfactorios. Como texto te recomiendo los libros que al respecto tiene publicado la editorial McGrawHill:
Programación con Microsoft Excel. Macros y Visual Basic para Aplicaciones.
Desarrollo de soluciones con Microsoft Excel.
Respuesta
Cuando ya no necesites más la información que tienes en el portapapeles (clipboard) puedes colocar una línea con el código:
Application.CutCopyMode=False
De esta forma limpias el clipboard y optimizas el rendimiento de tu macro y no tendrás que confirmar esta información antes de salir.
Hola muchas gracias por tu ayuda he aplicado el código y me ha funcionado bien
Lo único que en cada hoja que he copiado se queda el ultimo rango seleccionado me podrías ayudar con un código
Un saludo
Yale
Sería entonces seleccionar una celda particular después de ejecutada la macro, puede ser después de pegar y limpiar el contenido del portapapeles, seleccionas la celda A1.
Range("A1").Select

Añade tu respuesta

Haz clic para o