Este codigo me corre algunas veces y despues me da Error, alguien puede darme una mano?

Error en el metodo insert de la clase Range

Sub CheckIn_Guardar()

Application.ScreenUpdating = False
Sheets("Datos").Select
Rows("3:3").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
Sheets("Check_In").Select
Range("D6,D7,D8,D9,D10,D11,D12,D13,D14").Select
Range("D14").Activate
Selection.Copy
Sheets("Datos").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Sheets("Check_In").Select
Range("D7").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("D8").Select
Selection.ClearContents
Range("D9").Select
Selection.ClearContents
Range("D10").Select
Selection.ClearContents
Range("D11").Select
Selection.ClearContents
Range("D12").Select
Selection.ClearContents
Range("D13").Select
Selection.ClearContents
Range("D14").Select
Selection.ClearContents
ActiveWorkbook.Save
Application.ScreenUpdating = True
End Sub

1 respuesta

Respuesta
1

Debes aclarar un poco más para que podamos ayudarte, igualmente te simplificaré un poco esa macro para que quede más concisa (y sea más fácil de entender) ya que hay muchas instrucciones redundantes

Sub CheckIn_Guardar()
Application.ScreenUpdating = False
Sheets("Datos").Select
Rows("3:3").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
Sheets("Check_In").Select
Range("D6:D14").Copy
Sheets("Datos").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Sheets("Check_In").Select
Application.CutCopyMode = False
Selection.ClearContents
ActiveWorkbook.Save
Application.ScreenUpdating = True
End Sub

Eso hace lo mismo que la tuya (por lo tanto el error debería seguir), pero como ves es mucho más compacta.

Si puedes dar más detalle del error (que error te da, al hacer que cosa, etc) te vamos a poder ayudar mejor, ya que con la información que estás dando existen muchas posibilidades

Salu2

Perdón, te dejo un ligero cambio cuando borrás el contenido de las celdas:

Sub CheckIn_Guardar()
Application.ScreenUpdating = False
Sheets("Datos").Select
Rows("3:3").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
Sheets("Check_In").Select
Range("D6:D14").Copy
Sheets("Datos").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Sheets("Check_In").Select
Application.CutCopyMode = False
Range("D6:D14").ClearContents
ActiveWorkbook.Save
Application.ScreenUpdating = True
End Sub

Salu2

Muchas gracias.

No quise extenderme mucho, es todo.

Tengo un Form, que ingreso datos y un botón de guardar.

Me guarda en la hoja siguiente.

Donde inserté una Fila y puse [Pegar Igual que arriba".

Así siempre la ultima grabación me queda primero. Después del encabezado y una fila en blanco

Despues dee grabar datos algunass veces, me apareece el error " Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow "

Espero ser cllaro.

Mil gracias,

Pedro

En general no veo nada extraño, solo que en la hoja 'Datos' queda seleccionado lo que acaba de copiar y eso puede traerle algún problema...

Prueba con

Sub CheckIn_Guardar()
Application.ScreenUpdating = False
Sheets("Datos").Select
Rows("3:3").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
Sheets("Check_In").Select
Range("D6:D14").Copy
Sheets("Datos").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("A1").Select
Sheets("Check_In").Select
Application.CutCopyMode = False
Range("D6:D14").ClearContents
ActiveWorkbook.Save
Application.ScreenUpdating = True
End Sub

Agregué Range("A1"). Select, como para que seleccione una sola celda luego de copiar

En caso que no arregle el problema, deberías ejecutar la macro 'paso a paso' para ver exactamente cuando ocurre el problema

Salu2

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas