Seleccionar filas para eliminarlas

3 envíos / 0 nuevos
Último envío
Jose Luis Casla...
Imagen de Jose Luis Casla Araiz
Offline
última acción: Hace 2 semanas 2 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntos
alta: 11/05/2012 - 15:15
Puntos: 1735
Seleccionar filas para eliminarlas

Hola a todos:

He preparado una macro con la que quiero poder eliminar determinadas filas de una Hoja en la que hay miles de datos.

Para ello "busco" la linea que me interesa y localizada, asigno a la variable nInicio el valor de esa fila.

Despues hago otra búsqueda y localizada, asigno a la variable nFin el valor de esa nueva linea.

Despues selecciono ese rango, y pretendo eliminar las filas.

No consigo que funcione y casi seguro que estoy cometiendo algun error de "sintaxis" en la macro escrita.

En concreto la macro es esta:

------------------------------------------------------

Sub eliminar()

Dim nInicio as integer

Dim nFin as Integer

' Quiero localizar la linea que empiece por "<CALL"

    Cells.Find(What:="<CALL", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
       
        nInicio = ActiveCell.Row

' A continuación quiero localizar la linea que empìece por "<MODE" porque quiero seleccionar todas las filas comprendidas entre la de "<CALL y la de "<MODE        
 

    Cells.Find(What:="<MODE", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
 

   nFin = ActiveCell.Row - 1
 

' Aqui esta el problema...

   Rows("nInicio:nFin").Select
    Selection.Delete Shift:=xlUp
  
End Sub

------------------------------------------------------

Si ejecuto la macro, paso a paso, verifico que nInicio tiene por ejemplo el valor de 7 y nFin el valor de 19.

Sin embargo al llegar a la linea-> Rows("nInicio:nFin").Select, me da error 13  "no coinciden los tipos...") a pesar de estar declaradas ambas variables como Integer...

Si sustituyo la linea->  Rows("nInicio:nFin").Select , por esta otra-> Rows("7:19").Select, entonces sí funciona.

He debido probar todas las posibilidades... (menos la correcta...) pero no consigo que me funcione con las variables pero si con los valores numéricos.

Alguna pista?

Gracias anticipadas.

Jose Luis Casla

FernandoML
Imagen de FernandoML
Offline
última acción: Hace 2 semanas 2 días
alta: 01/02/2018 - 19:53
Puntos: 265
Seleccionar filas para eliminarlas

La solución a tu problema es la siguiente:

Rows("" & sInicio & ":" & sFin & "").Select

 


Espero te sirva
Un Saludo
Fernando

Jose Luis Casla...
Imagen de Jose Luis Casla Araiz
Offline
última acción: Hace 2 semanas 2 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntos
alta: 11/05/2012 - 15:15
Puntos: 1735
Gracias amigo Fernando por tu

Gracias amigo Fernando por tu ayuda en la sintaxis de la instruccion.

Funciona.

Jose Luis Casla