Excel - Error al pasar parametros de rango de un procedimiento a otro.

   
Vista:

Error al pasar parametros de rango de un procedimiento a otro.

Publicado por Aloisius aloisius2005@gmail.com (3 intervenciones) el 30/06/2011 21:01:59
Buenas,

Tengo dos procedimientos, el primero me lee unos parametros o valores para pasarlos al segundo.
El primero tiene declaradas como "range" unas variables para que al pasarlas al segundo que trabaja con rangos de criterios pueda hacer la selección de datos y copiarlos a otro rango.
Si lo hago por partes me funciona, pero al hacerlo todo en una sentencia logica me devuelve el error: Error en el metodo range de objeto - global.

Pongo los dos procedimientos más abajo.
Si alguien me puede decir por que fallan, le estaré muy agradecido.

Saludos

-------------------------------------------------------------------------------------------------------------------
Sub BuscaProducto()
Dim HojaActual, HojaOrigen, Database, Accion As String
Dim RangoCriterio As Range, RangoDestino As Range
Dim Unico As Boolean

HojaActual = ActiveSheet.Name
HojaOrigen = "ListadoGeneral"
Database = "StockGeneral"
Accion = Sheets("Criterios").Range("$C$21").Value
If Accion = 2 Then
Accion = "xlFilterCopy"
Else
Accion = "xlFilterInPlace"
End If

Set RangoCriterio = Range("B6:M9")
Set RangoDestino = Range("B31:M91")

Call FiltroDeSeleccion(HojaOrigen, Database, Accion, RangoCriterio, RangoDestino, Unico)

End Sub
Sub FiltroDeSeleccion(HojaOrigen, Database, Accion As String, ByVal RangoCriterio As Range, ByVal RangoDestino As Range, Unico As Boolean)
'expression.AdvancedFilter(Action, CriteriaRange, CopyToRange, Unique)
' Action:=xlFilterInPlace o Action:=xlFilterCopy
'
Sheets(HojaOrigen).Select
Range(Database).Select

Sheets(HojaOrigen).Range("Database").AdvancedFilter Action:=Accion, CriteriaRange:=Range(RangoCriterio), CopyToRange:=(RangoDestino), Unique:=Unico

End Sub
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

Error al pasar parametros de rango de un procedimiento a otro.

Publicado por Abraham Valencia (2418 intervenciones) el 30/06/2011 22:29:37
Declara tus variables de rango como "String" y comenta. No olvides que al darle un valor al objeto Range, lo que este recibe es una cadena. La variable delcrada como Range devuelve un objeto

Abraham Valencia
Microsoft MVP 2010
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
Imágen de perfil de JuanC

Error al pasar parametros de rango de un procedimiento a otro.

Publicado por JuanC juanc2942@gmail.com (1054 intervenciones) el 01/07/2011 02:18:53
Accion no debe ser String...
es una constante XlFilterAction
debe ser 1 o 2...

Saludos, desde Baires, JuanC
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

Error al pasar parametros de rango de un procedimiento a otro.

Publicado por Aloisius aloisius2005@gmail.com (3 intervenciones) el 01/07/2011 10:33:00
Hola, Gracias por vuestra ayuda.

Comentare lo que ha pasado y contesto a ambos al la vez.

Le paso los datos a Accion como stringo o como boolean y todo perfecto.

El problema continua en el paso de los datos a las variables que manejan los rangos de Criterio y Destino.
Las convierto en String en ambos procedimientos, pero me dice que no coinciden los datos.
Imagino que al pasar a una cadena este dato me da ese error:

RangoCriterio = Range ("B6:M9")
RangoDestino = Range ("B31:M91")

Si los rectifico de la siguiente forma:

RangoCriterio = "B6:M9"
RangoDestino = "B31:M91"

me devuelve este otro error en el segundo procedimiento en el momento de ejecutar la sentencia del filtro:

Se ha producido el error 1004 en tiempo de ejecución
Error defiido por la aplicación o el objeto.

No se más, no acierto a pasar los datos de un rango de un procedimiento a otro.

Gracias de antemano.
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

Error al pasar parametros de rango de un procedimiento a otro.

Publicado por Abraham Valencia (2418 intervenciones) el 01/07/2011 16:54:26
Por cierto, no ovlides declarar las variables en el modulo, si las tienes dentro de un procedimiento, los valores se pierden al pasar al otro

Abraham Valencia
Microsoft MVP 2010

PD: Otro modo es declararlas como "publicas" en un modulo "normal"
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

Error al pasar parametros de rango de un procedimiento a otro.

Publicado por Aloisius aloisius2005@gmail.com (3 intervenciones) el 03/07/2011 08:07:24
Chicos, gracias por el intento.
Llevo varios dias pasando horas en el ordendor sin que funcione el tema y sin averiguar el porque.

He decidido hacerlo por el metodo antiguo de pasar cada dato de busqueda a una variable y hacerlo todo en un solo procedimiento. Ya se que no es "correcto", pero necesito salir de aqui.

Gracias de nuevo.
Aloisius
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