publicado el 2 de enero10 años 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?
publicado el 2 de enero10 años Hola, adjunta un archivo de ejemplo y podremos ayudarte Normas del Foro Salu2
publicado el 3 de enero10 años Autor Hola [uSER=143023]@Riddle[/uSER] Adjunto el archivo de ejemplo a ver si me podeis ayudar. Gracias datosEjemploBorrado.rar
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?