Hola @RubenDario Faltaría que en cada línea dentro del With le pongas un punto al inicio With Hoja1 .Range("B6:B18,F6:F18,J6:J18").Select .Range("J6").Activate With Selection.Interior .Pattern = xlNone .TintAndShade = 0 .PatternTintAndShade = 0 End With .Selection.ClearContents .Range("A1").Select End With Sin embargo, lo que yo haría (si fuese mi proyecto)... te ofrezco varias soluciones. No asignarlo a una combinación de teclas, mejor ponerlo en una forma o botón. Modificar tu libro con la app Custom UI Editor o similar y adicionar un botón en el Ribbon, estará visible solo cuando el libro esté activo. Al principio de tu código pondría algo como: If Thisworkbook.Name <> ActiveWorkbook.Name Then Exit sub
Por
DiegoPC , · publicado el 28 de agosto 28 ago
Hola.
Actualmente estoy utilizando una macro para filtrar contenidos pero como la base de datos se ha hecho bastante grande tarda mas de cinco minutos en ejecutarla.
Sub Borrado_Articulos_filtro()
Dim FILAFINAL As Long
Dim X As Long
Sheets(1).Select
FILAFINAL = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
For X = FILAFINAL To 2 Step -1
'VALORES COLUMNA H
If Sheets(1).Cells(X, 8) = "CG346A" Then
Cells(X, 1).Select
Cells(X, 1).EntireRow.Delete
End If
If Sheets(1).Cells(X, 8) = "ARTICULO 1" Then
Cells(X, 1).Select
Cells(X, 1).EntireRow.Delete
End If
If Sheets(1).Cells(X, 8) = "ARTICULO 2" Then
Cells(X, 1).Select
Cells(X, 1).EntireRow.Delete
End If
If Sheets(1).Cells(X, 8) = "ARTICULO 3" Then
Cells(X, 1).Select
Cells(X, 1).EntireRow.Delete
End If
If Sheets(1).Cells(X, 8) = "ARTICULO 4" Then
Cells(X, 1).Select
Cells(X, 1).EntireRow.Delete
End If
Next X
End Sub
La pregunta es:
Alguien me puede facilitar una macro que haga la misma función a través de un array de articulos u otro sistema pero que no tarde tanto en ejecutarse?