Error al pasar parametros de rango de un procedimiento a otro.
Publicado por Aloisius (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
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


0