Cómo programar un macro que filtre una determinada categoría de una columna de una tabla
He aprendido valiosas cosas en este foro y por eso he decidido preguntar aquí lo siguiente:
Tengo un cúmulo de datos que mediante un macro, los convierte en una tabla (1). El problema es que necesito copiar datos de esa tabla una vez filtrados y pegarla en otra tabla (2) en otra hoja. Grabé el macro y todo funcionaba bien con el acumulado de ese día pero al hacer pruebas con diferentes cantidades de información en la tabla 1, me di cuenta de lo siguiente:
-El filtro que debe realizar, lo guardó con el nombre del filtro pero TAMBIÉN CON LA POSICIÓN que esta categoría tiene en el listado del filtro. E.g:
*Dispatched
*Closed
*Assigned
*Submitted
Si quiero que guarde el filtro de Verde, el comando graba "Dispatched" pero también "Field=6". La cuestión es que no todos los días tengo "Dispatched" en la 1a posición por lo que necesito que se fije solamente en el nombre de la categoría y no en su lugar en lista.
-En otra columna, quiero que el filtro me muestre todas las de la lista a excepción de una (celdas en blanco) pero vuelve a grabar su posición en lista que es variable día con día.
-Por último, tampoco sé cómo hacer para que me pegue lo copiado de esta tabla 1, al final de la tabla 2, para así continuar el acumulado. Lo mismo sucede que guarda la fila de la celda y no el hecho de que ahí termina la información de la tabla.
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$G$10000"), , xlYes).Name = _
"Table9"
Range("Table9[#All]").Select
ActiveSheet.ListObjects("Table9").TableStyle = "TableStyleLight2"
ActiveSheet.ListObjects("Table9").Range.AutoFilter Field:=2, Criteria1:= _
"Dispatched"
Columns("D:D").Select
Selection.delete Shift:=xlToLeft
Columns("C:C").Select
Selection.TextToColumns Destination:=Range( _
"Table9[[#Headers],[ETA Set For Date]]"), DataType:=xlFixedWidth, FieldInfo _
:=Array(0, 3), TrailingMinusNumbers:=True
ActiveSheet.ListObjects("Table9").Range.AutoFilter Field:=6, Criteria1:= _
"<>"
Range("A2:E2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection. Copy