Novato en excel, concretamente macros. Macro filtradora de datos.

Muy buenas, pues estoy intentando crear una macro que me ayude a filtrar una serie de datos, inicialmente he puesto un número cerrado de datos. En concreto 150 filas, ahora bien en un futuro me gustaría ampliar la dificultad y especificarle el número de filas que
debe comprobar.

En fin la idea básica de la macro es que yo copio unos determinados datos en una hoja excel (hoja 3). Y quiero que la macro compruebe fila a fila una condición. Dicha condición es que una celda de la fila se encuentre entre un rango de valores. Si esto es correcto quiero que me copie la fila y la pegue en la hoja siguiente (hoja 4). Entonces de nuevo vuelva a la hoja 3 compruebe la siguiente fila y si la condición se cumple pues que la copie a la hoja 4. Así sucesivamente.

De alguna manera u otra he conseguido que lo haga el problema viene cuando una fila de la hoja 3 no cumple la condición. Entonces claro la macro detecta este problema, y no la copia, y pasa a la siguiente, dejando así una fila en blanco en la hoja 4. Quisiese que el copiado fuese en orden sin dejar espacios en blanco en la hoja 4.

El segundo problema se detiene una vez que la condición impuesta no se cumple, y no entiendo porqué, ya que le he puesto una función 'Dowhile', pero al parecer la ignora. ¿Por qué?


¿Cómo consigo solucionar estos problemas?


Muchas gracias de antemano. Y pido disculpas si la pregunta es muy simple.


El código que estoy usando es:

Sub Macro:fil()
'Dimensionar los Parámetros
Dim a As Double
Dim z As Double
'Primeros resultados
z = 10
Do While Cells(z, 2) <> "end"
Application.ScreenUpdating = True
Sheets("03-CPX-RIMS COMP-FeOt").Select
a = Cells(z, 18)
If a > 0.26 And a < 0.28 Then
Range(Cells(z, 2), Cells(z, 19)).Copy
Application.ScreenUpdating = True
Sheets("04-FIRST RESULTS").Select
Range(Cells(z, 2), Cells(z, 19)).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
z = z + 1
Loop

End Sub

Añade tu respuesta

Haz clic para o