Programación General > VBA
Eliminar Filas
(1/1)
javig:
holaa:
resulta que para el trabajo necesito hacer una macro con lo siguiente (de momento lo estoy haciendo sin macro y con un ejemplo parecido pero pequeño para ver si me funcionaría).
Resulta que de una tabla dinámica, sólo me interesa saber los valores de la cuarta columna. Si tienen un determinado valor dejo la fila como está y sino pues la borro, de momento (más adelante las filas que me cumplen la condición deberé guardarlas en otra hoja o en otro archivo excel).
El código que tengo es el siguiente y no sé por qué siempre me borra únicamente la primera fila:
Private Sub CommandButton1_Click()
Dim fila As Long, columna As Long
fila = 1
columna = 1
Do While Cells(fila, columna) <> ""
Do While Cells(columna, fila) <> ""
If ((columna = 4) And (Cells(columna, fila) <> "Bien") And (Cells(columna, fila) <> "Forzada")) Then
Rows(fila).Delete
End If
columna = columna + 1
Loop
fila = fila + 1
columna = 1
Loop
End Sub
Quiero que las filas cuya columna sea diferente de "Bien" ó "Forzada" de momento, se eliminen.
A ver si alguien me puede echar un cable...
Muchas gracias.
Javi
posman:
Creo yo que tu error esta en el ciclo anidado:
--- Código: Text ---Do While Cells(columna, fila) <> "" Supongo que con ese segundo ciclo quieres recorrer las columnas de determinada fila, pero no estas haciendo eso.
Con ese ciclo lo que estas haciendo es comparar los datos de lineas.
Mira, al Cells le debes de enviar linea y columna, en ese orden. Supon que fila = 1 y columna = 3.
Si mandas llamar Cells(fila, columna) entonces obtienes el valor de la fila 1 y la columna 3.
Y si mandas llamar Cells(columna, fila) entonces obtienes el valor de la fila 3 y la columna 1.
Lo que quiero decir es que en tu segundo ciclo:
--- Código: Text --- Do While Cells(columna, fila) <> ""...columna = columna + 1Loop
Suponiendo que fila=1, estas recorriendo:
fila 1, columna 1
fila 2, columna 1
fila 3, columna 1
etc
No estas recorriendo las columnas.
Si eso es lo que querias hacer, recorrer las lineas y no las columnas entonces no entendi bien tu problema :D
Navegación
Ir a la versión completa