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
La solución a tu problema es la siguiente:
Rows("" & sInicio & ":" & sFin & "").Select
Espero te sirva
Un Saludo
Fernando
Gracias amigo Fernando por tu ayuda en la sintaxis de la instruccion.
Funciona.
Jose Luis Casla