Macros me borra ultima fila al pegar Excel

Buenas amigos de expertos! Tengo el siguiente problema con la siguiente macro:

Sub Cargar_Asiento()
Dim NRO_ASIENTO
' CONSISTENCIA DE LA CARGA
If Range("K18") = "Asiento Correcto" Then
' COPIANDO CARGA DE DATOS DE ASIENTO
Range("A5:K14").Select
Selection.Copy
' UBICARSE AL FINAL DE LA BASE DE ASIENTOS
Range("B2500").Select
Selection.End(xlUp).Select
Selection.Offset(1, -1).Select
'PEGAR DATOS ASIENTOS
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
'INICIO
Application.CutCopyMode = False
Range("D5").Select
'MENSAJE INDICANDO NUMERO DE ASIENTO
NRO_ASIENTO = Range("C5").Value
MsgBox ("Se ha contabilizado el asiento número " & NRO_ASIENTO)
'NUMERAR ASIENTO
Range("C5").Value = NRO_ASIENTO + 1
'LIMPIAR CARGA DE ASIENTO
Range("A5:B14,I5:K14,D5:F14").Select
Selection.ClearContents
Range("D5").Select
Else
MsgBox ("Existen errores en la carga del asiento, por favor verificar")
End If
End Sub

Resulta que el argumento ' UBICARSE AL FINAL DE LA BASE DE ASIENTOS, en el primer asiento que se copia todo bien, pero cuando va al segundo asiento me borra la ultima fila que ya se había pegado. Mi duda es como puedo hacer que se pegue sin borrar la ultima fila del asiento anterior.

Y otra seria como seria un argumento dentro de esta macro para dejar una fila en blanco después de cada asiento?

Gracias de antemano expertos..

1 Respuesta

Respuesta
1

Yo cambiaría esta parte del código:

Range("B2500").Select
Selection.End(xlUp).Select
Selection.Offset(1, -1).Select

Por esta:

k = Range("B" & Cells.Rows.Count).End(xlUp).Row + 2

Range("B" & k).select

Prueba y me avisas, la idea es que pegue dejando un espacio en blanco.

Hola experto! intentare eso a ver, pero también quisiera otra cosa, saber que al final del asiento me coloque una linea negra para diferenciar mejor cada asiento, se podría dentro de la misma macro?

Experto acabo de probar y si funciona pero entonces se me corre una columna y se descuadra, me deja la primera celda en blanco de la izquierda y se pega a partir de la segunda columna.

lo modifique cambiando donde dice Selection.Offset(1, -1).Select por Selection.Offset(2, -1).Select

pero quisiera que igual me dejara la fila o la linea negra al final de cada siento.. Gracias por la ayuda.

Ok, para hacer lo que necesitas en lugar de :

Range("B" & k).select

Pon:

Range("A" & k).select

Rows(k-1).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.PatternTintAndShade = 0
End With

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas