Corrección de fórmula en macro

Escribo por lo siguiente,

He creado un programa en excel muy interesante para el control de stock de una bodega por sku, tiene un inicio de sesión, menú de usuarios, crear sku con código numérico de 8 dígitos, revisar kardex por sku, consultar stock por sku, genera movimientos de entrada y salida de mercadería, ajustes por inventario, y el detalle por sku de la bodega, he aquí, en esta ultimo ítem mi problema, en esta hoja inserta el sku cuando es creado, mi problema es que al insertar el nuevo sku lo ingresa pero al ordenarlo se des configura la fórmula que me da el stock de la bodega completa, por ahora me da el stock con fórmula sumar. Si. Conjunto, pero como indicaba al ordenar por sku se des configura la cantidad en relación al sku adjunto pantallazo y código

Please ayuda para ordenar, gracias

 Sub NUEVOCODIGO_CREARSI()
Application.DisplayFullScreen = True
Sheets("CARGANDO").Select
Application.ScreenUpdating = False
Sheets("KARDEX").Select
ActiveSheet.Unprotect Password:="13579"
Rows("14:14").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Rows("4:4").Select
Selection.Copy
Rows("14:14").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("KARDEX").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("KARDEX").AutoFilter.Sort.SortFields.Add Key:=Range _
("B13"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("KARDEX").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("C9").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True, Password:="13579"
ActiveSheet.EnableSelection = xlUnlockedCells
Sheets("SALDO").Select
Rows("4:4").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A2").Select
Selection.Copy
Range("A4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B5:F5").Select
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("B4:F5"), Type:=xlFillDefault
Range("B4:F5").Select
Range("A2").Select
Sheets("SKU").Select
Rows("5:5").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Rows("2:2").Select
Selection.Copy
Rows("5:5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("SKU").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("SKU").AutoFilter.Sort.SortFields.Add Key:=Range( _
"A3"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("SKU").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A2").Select
Sheets("SALDOMASIVO").Select
Rows("11:11").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B2:C2").Select
Selection.Copy
Range("B11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("D12").Select
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("D11:D12"), Type:=xlFillDefault
Range("D11:D12").Select
Range("A1").Select
Sheets("NUEVOSKU").Select
Range("C6:G6").Select
Selection.ClearContents
Range("C9:AC9").Select
Selection.ClearContents
Range("AE9:AK9").Select
Selection.ClearContents
Range("C6:G6").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True, Password:="13579"
ActiveSheet.EnableSelection = xlUnlockedCells
ActiveWorkbook.Save
Application.ScreenUpdating = True
MsgBox "MATERIAL CREADO CON EXITO", vbInformation, "ACQ SOFTWARE"
End Sub

2 Respuestas

Respuesta
1

No estarás seleccionando todas las columnas fíjate estos ejemplos si te son de utilidad

https://macrosenexcel.com/2013/10/ordenar-datos-insertar-filas.html

https://macrosenexcel.com/2013/12/ordenar-mediante-varios-criterios.html

https://macrosenexcel.com/2013/12/ordenar-mediante-varios-criterios_6.html

https://macrosenexcel.com/2014/01/activar-hoja-y-ordenar-datos.html

https://macrosenexcel.com/2014/04/macro-vba-ordenar-por-varias-columnas.html

Respuesta
1

Por lo que comentas tu aplicación es bastante extensa. Y si a cada proceso le agregas tantas líneas innecesarias se me hace que con el tiempo te costará hacer un seguimiento de cada uno de ellos.

Te invito a mirar el video 11 de mi canal y así poder pulirlo un poco. Tanta selección es totalmente innecesaria como lo explico allí más otros errores que quizás también presenta tu aplicación.

Con respecto al tema puntual, no habría razón para que se te desordenen las fórmulas si el rango está bien seleccionado como te menciona el experto en respuesta anterior.

Sdos.

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas