Solicitud de Sugerencia de como resolver situación de datos repetidos en archivo de excel
S a l u d o s Dam
Tengo la siguiente situación, una hoja llamada "Visitas" en la cual registro los datos que deseo almacenar en otra hoja llamada "Cartera" mediante una macro llamada "Registros".
La macro es esta:
Sub REGISTROS()
'Act.Por.Dante Amor
Application.Visible = False
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
Set h1 = Sheets("VISITAS")
Set h2 = Sheets("CARTERA")
Set h4 = Sheets("CLIENTES")
'
u = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
h1.Range("C5:C14").Copy: h2.Range("A" & u).PasteSpecial Paste:=xlPasteValues, Transpose:=True
h1.Range("F5:F14").Copy: h2.Range("K" & u).PasteSpecial Paste:=xlPasteValues, Transpose:=True
h1.Range("F2").Copy: h2.Range("U" & u).PasteSpecial Paste:=xlPasteValues, Transpose:=False
h2.Range("V3:Y3").Copy h2.Range("V" & u)
h2.Range("F" & u).TextToColumns Destination:=h2.Range("Z" & u), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 2), Array(1, 1), Array(4, 1)), TrailingMinusNumbers:=True
h2.Range("AC3").Copy h2.Range("AC" & u)
h2.Range("H" & u).TextToColumns Destination:=h2.Range("AD" & u), _
DataType:=xlDelimited, TextQualifier:=xlNone, ConsecutiveDelimiter:=True, Space:=True, _
FieldInfo:=Array(Array(1, 2), Array(2, 2)), TrailingMinusNumbers:=True
h2.Range("AF" & u) = "=TEXT(RC[-31],""yyyy"")"
h2.Range("AG" & u) = "=TEXT(RC[-32],""mmmm"")"
h2.Range("AH" & u) = "=IF(RC[-4]="""","""",IF(RC[-4]=""plan"",""Particulares"",RC[-3]))"
Set b = h4.Columns("C").Find(h1.[C7], lookat:=xlWhole)
If Not b Is Nothing Then
h2.Range("AW" & u) = h4.Cells(b.Row, "F")
End If
'
h1.Unprotect Password:="0976342842"
H1. Range("F5:F7"). ClearContents
H1. Range("F10:F12"). ClearContents
H1. Range("F14"). ClearContents
H1. Range("C6:C7"). ClearContents
H1. Range("C9:C12"). ClearContents
H1. Range("C14"). ClearContents
h1.Range("F2") = h1.Range("F2") + 1
h1.Protect Password:="0976342842"
Application.ScreenUpdating = True
Application.Visible = True
ActiveWorkbook.Save
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
ActiveSheet.DisplayPageBreaks = True
Application.CutCopyMode = False
End SubNo estoy muy satisfecho actualmente al ejecutar la macro por que tarda demasiado, pero creo que es por la siguiente situación:
Resulta que cuando la macro se ejecuta, ella traslada al rededor de 20 datos a la hoja "Cartera" y en dicha hoja en unas columnas adicionales hay formulas que toman información de los datos ingresados y hacen sus operaciones.
Hasta ahí bien, lo que pasa es que tengo 2 hojas más, una llamada "Analisis" y otra llamada "CopiaDatos" que toman los datos de la hoja "Cartera" con formulas sencillas como estas:
=SI(CARTERA!A10241="";"";CARTERA! A10241)
Y no se mucho de excel pero creo, tu me diras si estoy en lo correcto, que esto es lo que hace que la macro "Registros" se demore tanto pues hasta que no se actualicen las hojas "CopiaDatos" y "Analisis" no termina la macro.
¿Es correcto?
Y de ser asi, ¿Qué solución se le podría dar?
Yo uso la hoja "Cartera" como forma de seguridad oculta que nadie pueda acceder fácilmente a dichos datos para evitar que los borren.
La hoja CopiaDatos la utilizo únicamente para visualización de los datos.
La hoja Analisis en ella hago filtrosavanzados cuando deseo encontrar datos de un cliente especifico.
¿Qué me sugieres?