Asignar rango variable para un filtro en tabla con Vba

Necesito una ayuda para filtrar y ordenar una tabla con macros pero me ha surgido un problema que consigo solucionar, adjunto la macro que estoy creando en la grabadora, pero me falta asignar el rango.

Desde un userforms mediante un combobox asigno la palabra que quiero filtrar de la tabla (el nombre de la tabla es el mismo nombre de la hoja donde esta la tabla que es variable según voy creando hojas) y una vez filtrado necesito ordenar con varios criterios la columna [Familia] de la tabla pero me falta asignar el rango que no se como solucionarlo.

Text_Nombre_Hoja.Value es el nombre de un textbox que trae el dato de la celda a1.

Y mi problema radica en donde está el nombre de la tabla de la macro que pongo en negrita.

Sub filtrar_por_Ítems2018()
'
' Macro3 Macro
'

'

Sheets(Text_Nombre_Hoja.Value).Select
Set h3 = ActiveSheet

Nombre = h3.Range("A1")
For Each tabla In h3.ListObjects
tabla.Name = Nombre

Range("E31").Select
Selection.AutoFilter
Criterio1 = Comb_Titulo.Text
ActiveSheet.ListObjects(Nombre).Range.AutoFilter Field:=19, Criteria1:=Criterio1
Range("_01.00.01[[#Headers],[Familia]]").Select
ActiveWorkbook.Worksheets("Nombre).ListObjects(Nombre).Sort.SortFields. _
Clear
ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort.SortFields. _
Add Key:=Range("_01.00.01[Familia]"), SortOn:=xlSortOnCellColor, Order:= _
xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort. _
SortFields(1).SortOnValue
.Pattern = xlPatternLinearGradient
.Gradient.Degree = 0
.Gradient.ColorStops.Clear
End With
With ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort. _
SortFields(1).SortOnValue.Gradient.ColorStops.Add(0)
.Color = 680652
.TintAndShade = 0
End With
With ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort. _
SortFields(1).SortOnValue.Gradient.ColorStops.Add(1)
.Color = 15856113
.TintAndShade = 0
End With
ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort.SortFields. _
Add Key:=Range("_01.00.01[Familia]"), SortOn:=xlSortOnCellColor, Order:= _
xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort. _
SortFields(2).SortOnValue
.Pattern = xlPatternLinearGradient
.Gradient.Degree = 0
.Gradient.ColorStops.Clear
End With
With ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort. _
SortFields(2).SortOnValue.Gradient.ColorStops.Add(0)
.Color = 6684927
.TintAndShade = 0
End With
With ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort. _
SortFields(2).SortOnValue.Gradient.ColorStops.Add(1)
.Color = 16777215
.TintAndShade = 0
End With
ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort.SortFields. _
Add Key:=Range("_01.00.01[Familia]"), SortOn:=xlSortOnCellColor, Order:= _
xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort. _
SortFields(3).SortOnValue
.Pattern = xlPatternLinearGradient
.Gradient.Degree = 0
.Gradient.ColorStops.Clear
End With
With ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort. _
SortFields(3).SortOnValue.Gradient.ColorStops.Add(0)
.Color = 12611584
.TintAndShade = 0
End With
With ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort. _
SortFields(3).SortOnValue.Gradient.ColorStops.Add(1)
.Color = 16777215
.TintAndShade = 0
End With
ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort.SortFields. _
Add Key:=Range("_01.00.01[Familia]"), SortOn:=xlSortOnCellColor, Order:= _
xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort. _
SortFields(4).SortOnValue
.Pattern = xlPatternLinearGradient
.Gradient.Degree = 0
.Gradient.ColorStops.Clear
End With
With ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort. _
SortFields(4).SortOnValue.Gradient.ColorStops.Add(0)
.Color = 1790201
.TintAndShade = 0
End With
With ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort. _
SortFields(4).SortOnValue.Gradient.ColorStops.Add(1)
.Color = 16777215
.TintAndShade = 0
End With
ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort.SortFields. _
Add Key:=Range("_01.00.01[Familia]"), SortOn:=xlSortOnCellColor, Order:= _
xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort. _
SortFields(5).SortOnValue
.Pattern = xlPatternLinearGradient
.Gradient.Degree = 0
.Gradient.ColorStops.Clear
End With
With ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort. _
SortFields(5).SortOnValue.Gradient.ColorStops.Add(0)
.Color = 6299648
.TintAndShade = 0
End With
With ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort. _
SortFields(5).SortOnValue.Gradient.ColorStops.Add(1)
.Color = 65535
.TintAndShade = 0
End With
With ActiveWorkbook.Worksheets(Nombre).ListObjects(Nombre).Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
h3.Name = Nombre
h3.Range("A1") = Nombre
Range("A3").Select
Exit For
Next
End Sub

Añade tu respuesta

Haz clic para o