Excel - Eliminar Registro

 
Vista:

Eliminar Registro

Publicado por sargvid (83 intervenciones) el 02/10/2006 17:00:43
Hola muy buenas

La verdad estoy enganchadisimo a esto del programar en VB...es una pasada todo lo que se puede hacer.

Mi problema es el siguiente, no se como tendria que hacer para eliminar un registro, que ya tengo localizado mediante un codigo. Os lo pongo:

Private Sub CommandButton4_Click()
'Eliminar el Registro
Dim Fila As String
Dim Valor As String
'Capturo el valor escogido en el Combox (VAL lo convierte a numero)
Valor = ComboBox1
'Busca el Numero elegido
Sheets("Historico").Select
Range("V5").Select
Do While ActiveCell.Value <> Valor
ActiveCell.Offset(1, 0).Select
Loop
'Captura el numero de fila
Fila = ActiveCell.Row
Selection.EntireRow.Delete -------> y es aqui donde nose lo que poner....
End Sub

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Eliminar Registro

Publicado por José Luis (700 intervenciones) el 02/10/2006 22:43:51
¿Qué es lo que quieres poner?
El código está perfecto para anular una línea completa, tal como indicas.
Cuando ejecutas ActiveCell.Offset(1, 0).Select ya estás seleccionando la celda, y la instrucción
Fila = ActiveCell.Row
no sería necesaria. La siguiente
Selection.EntireRow.Delete
ya realiza el trabajo.

En cualquier caso considero necesario que establezcas un segundo control para acabar el bucle en caso de que llegues al final de la lista para que no siga buscando y llegue hasta el error de la fila 65537.

Podrías poner, si sabes el final de la lista FilaFinal
Fila = 5
Do While ActiveCell.Value <> Valor AND Fila <= FilaFinal
ActiveCell.Offset(1, 0).Select
Fila = ActiveCell.Row
Loop

o en caso de no saberlo pero si se cumple que la lista no tiene valores vacíos

Do While ActiveCell.Value <> Valor AND ActiveCell.Value <>""
ActiveCell.Offset(1, 0).Select
Loop

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias ;-)

Publicado por sargvid (83 intervenciones) el 03/10/2006 07:50:46
Gracias Jose Luis por todo.... ;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Gracias ;-)

Publicado por José Luis (700 intervenciones) el 03/10/2006 08:57:25
De nada Sargvid.
Por cierto que se me olvidó indicarte algo ...

Después del bucle Do, al hacer el borrado de la fila, debes verificar que has salido del bucle porque se cumple la condición de valor, lo que implica el borrado de la fila, y que si has salido porque has llegado al final no debe borrar, a menos que la fila final sea la que tenga el Valor

Do While ActiveCell.Value <> Valor AND Active.Cell.Value <> ""
ActiveCell.Offset(1, 0).Select
Loop
IF ActiveCell.Value = Valor THEN
Selection.EntireRow.Delete
END IF

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Gracias ;-)

Publicado por sargvid (83 intervenciones) el 04/10/2006 08:04:35
ya habia pensado eso ;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar