Macros para limpiar datos filtrados

Hola experto:

me gustaría que me ayudara con una macros que lo que hace es filtrar los datos a las hojas según el CRITERIO que tenga. (Grado y Sección)

Pero tengo un problema:

Al filtrar los datos la macro se maneja de maravilla, pero si yo hago un cambio en la hoja donde esta la BASE DE DATOS, y vuelvo a ser la distribución de datos de las personas, siempre queda agregado los DATOS VIEJOS con los NUEVO ya que la macros solo filtra y distribuye la información..

Que quiero:

que primero limpie (ClearContents) la información que se encuentra en todas las hojas creadas y que luego pase la información nueva, ,,,,,para que asi se refleje el cambio y no repita el mismo nombre varias veces con dos informaciones.

Y OTRA COSA:

Me gustaría que revisaras la macro, no se porque en algunas ocasiones en la hoja que contiene la base de datos (están los datos del alumno solo una vez) y cuando distribuye me a repetido el mismo alumno dos y hasta tres veces,,,

No siempre lo hace, pero ya me a sucedido.

esta es la macros:

Sub filtra_todo()
'x Elsamatilde
'
'lista de criterios a partir de col 27 es decir AA:AF (Primero-Segundo, etc) y col 33 para AG:AK (A, B, etc)
'se trabaja desde Hoja3 y se guarda la última fila del rango
Sheets("Hoja3").Select
'para no ver el movimiento de hojas
Application.ScreenUpdating = False
filax = Range("N65536").End(xlUp).Row
'se recorren los rangos de criterios. Por cada opción se filtra
For i = 27 To 35
For x = 36 To 39
Range("A1").Select
Selection.AutoFilter
Range("$A$1:$V$" & filax).AutoFilter Field:=14, Criteria1:=Cells(1, i)
Range("$A$1:$V$" & filax).AutoFilter Field:=15, Criteria1:=Cells(1, x)
'copia las filas filtradas en otra hoja cuyo nombre es la cadena de criterios
nbrehoja = Cells(1, i) & Cells(1, x)
'busco la última fila filtrada
finfila = Range("N65536").End(xlUp).Row
'copio a partir de la 2 hasta el fin
Rows("2:" & finfila).Select
Selection.Copy
On Error GoTo OtraHoja
Sheets(nbrehoja).Select
'pega a partir de fila 2
ActiveSheet.Range("A4").Select
ActiveSheet.Paste
ActiveSheet.Range("A4").Select
OtraHoja:
'vuelvo a la hoja, quito filtro anterior y filtro x el siguiente criterio
Sheets("Hoja3").Select
'muestro todos los valores para repetir con otro criterio
ActiveSheet.Range("$A$1:$V$2000").AutoFilter Field:=14
ActiveSheet.Range("$A$1:$V$2000").AutoFilter Field:=15
Application.CutCopyMode = False
Next x
Next i
ActiveSheet.Range("A2").Select
MsgBox "Fin del proceso"
End Sub

Bueno espero me pueda ayudar.....

Añade tu respuesta

Haz clic para o