Optimización de macro recibida y modificada

Para: Dante

Hola Dante y feliz inicio de semana

Amigo, con la macro recibida de usted:

 Sub Macro10()

'Por. Dante Amor'

ActiveSheet. Unprotect "abc"

u = Range("A" & Rows.Count).End(xlUp).Row    Range("A" & u & ":AF" & u).AutoFill _       

 Destination:=Range("A" & u & ":AF" & u + 1), Type:=xlFillDefault    

ActiveSheet.Protect "abc"

End Sub

Muy bien, porque hace parte de lo deseado, con la excepción que traslada en la nueva fila todos los contenidos de celda de la fila anterior . Esto implica sobrescribir en celdas de la fila creada al momento de registrar datos, lo cual puede generar error de carga de información al omitir una celda.

En base a lo señalado hice una modificación a la macro la cual solventa el traslado de contenido no deseado en las celda no bloqueadas, solo traslada los contenidos de celdas con formulas

A Continuación macro modificada :

Sub agregarFilaTabla()

'Por. Dante Amor'

ActiveSheet. Unprotect "abc"

u = Range("A" & Rows.Count).End(xlUp).Row    Z = u + 1    Range("A" & u & ":AF" & u).AutoFill _        Destination:=Range("A" & u & ":AF" & u + 1), Type:=xlFillDefault       

Range("A" & Z & ":F" & Z + 1).ClearContents       

Range("J" & Z & ":K" & Z + 1).ClearContents       

Range("M" & Z & ":AE" & Z + 1).ClearContents   

ActiveSheet.Protect "abc"

End Sub 

La modificación hace los resultado esperado.

¿Pregunto?. Como optimizar esta macro para evitar tantas líneas con ClearContents . Ya que las filas tendrán un rango de ("A:CM"), en la cual tendré otras celdas y rango de celda en la misma fila con formulas.

1 respuesta

Respuesta
2

Utiliza lo siguiente

Sub agregarFilaTabla()
'Por. Dante Amor'
    Dim u, Z
    ActiveSheet.Unprotect "abc"
    u = Range("A" & Rows.Count).End(xlUp).Row
    Z = u + 1
    Range("A" & u & ":AF" & u).AutoFill _
    Destination:=Range("A" & u & ":AF" & u + 1), Type:=xlFillDefault
    Range("A" & Z & ":F" & Z & ",J" & Z & ":K" & Z & ",M" & Z & ":AE" & Z).ClearContents
    ActiveSheet.Protect "abc"
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Hola Dante, ante todo mucha gracias por la Optimización de la macro. Los resultados esperado fueron exitoso. Pero tengo una duda y la hago saber; Esta macro no me afectaría las tablas correspondiente al resumen de tabla dinámica (Informes en tabla dinámica) asociada a esta tabla principal.

Saludos

No creo que afecte tu tabla dinámica, solamente se está insertando un registro a tu tabla. Revisa tu informe para que lo compruebes.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

¡Gracias! 

Al terminar la tabla, empeceré a crear las tablas dinámicas para general los informes. Cualquier observación al momento, la hago saber. Doy por cerrada esta pregunta. Agradecido de todo tu apoyo blindado a este proyecto.

Saludos.  

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas