Excel - Copiar hoja con filtro avanzado

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 15 puestos en Excel (en relación al último mes)
Gráfica de Excel

Copiar hoja con filtro avanzado

Publicado por Carlos A (2 intervenciones) el 15/01/2021 20:18:02
Estimados expertos,

Además de augurarles un año lleno de éxitos y salud pido su soporte:

Tome un ejemplo que gentilmente un experto me ayudo y quise adaptarlo para copiar otra hoja pero realmente se me ha hecho complicado. Es posible que me puedan ayudar con una solución simple?

PROBLEMA:
1.- Lo que necesito es copiar una hoja con datos, que para el ejemplo se llama "NEGOCIACION" a una hoja modelo que se llama "Liquida"
2.- Que se aplique un filtro avanzado hacia la hoja de "Liquida"
3.- Que esa hoja modelo "Liquida" quede oculta luego de terminar el proceso. (aparentemente si funciona lo que esta en el código)
4.- que elimine las filas vacías
5.- que me puedan recomendar y evitar el (ab)uso de formulas innecesarias.

SOLUCION ACTUAL CON ERROR: Por su puesto como verán en el código se demuestra mi falta de conocimiento, por lo que les pido su gentil ayuda a solucionar mi rompecabezas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub liquidacion():
Dim x As Long
Application.ScreenUpdating = False
Sheets("plantilla").Visible = True
 
   ' Copia la hoja modelo y cambia nombre a liquidacion
 
      Worksheets("liquida").Copy , after:=Worksheets(Worksheets.Count)
      ActiveSheet.Name = "LIQUIDACION"
For x = 24 To 99
    ' Aplica filtro avanzado a la hoja Negociacion y pega en LIQUIDACION
 
With Sheets("LIQUIDACION").Range("b24:z23")
.Offset(1).Resize(.Rows.Count - 1).AdvancedFilter Action:=xlFilterCopy, _
           CopyToRange:=Range("b24:q24"), Unique:=False:
          End With
 
'Copia las celdas de declaracion
    Worksheets("Liquida").Rows("100:124").Copy Range("a" & Cells(Rows.Count, 2).End(xlUp).Offset(2).Row)
 
      'elimina datos innecesarios
    Range([a124], Range("a" & Cells.SpecialCells(xlCellTypeLastCell).Row)).EntireRow.Delete
   Range("a13:a14,b24:q24").ClearContents: Debug.Print ActiveSheet.UsedRange.Address: Next
 
Sheets("plantilla").Visible = False
 
Application.ScreenUpdating = True
 
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder