Funcion Personalizada Buscarv
Publicado por Jose (20 intervenciones) el 18/06/2007 16:17:01
Hola,
Estoy tratando de definir una función personalizada que me permita realizar un buscav que cumpla dos criterios. Os detallo hasta lo que he conseguido programar:
Public Function Buscarv2(ByVal Valor_buscado1 As String, ByVal Valor_buscado2 As String, ByVal Rango_de_busqueda As Excel.Range, ByVal Indicador_columnas1 As Integer, ByVal Indicador_columnas2 As Integer) As String
Dim cell As Excel.Range
On Error Resume Next
For Each cell In Rango_de_busqueda
If cell.Value = Valor_buscado1 And cell.Offset(0, Indicador_columnas1 - 1) = Valor_buscado2 Then
Buscarv2 = cell.Offset(0, Indicador_columnas2 - 1).Value
End If
Next
End Function
Mis problemas son:
1)¿Cómo podría conseguir que cuando encuentre el primer valor quer cumpla las 2 condiciones que busco salga del bucle y no me sobreescriba los valores?
2)Si no hubiese en el rango de datos nada que cumpla las dos condiciones requeridas, ¿cómo podría hacer para la fórmula me devolviese "FALSO"?
Soy bastante nuevo en esto de programar funciones personalizadas, asi que os pediría vuestra opinión acerca del código que he creado. ¿Creeis que es correcto? ¿Es el mejor método para lograr lo que persigo? ¿Cómo lo habrías enfocado vosotros?
Mil Gracias
Estoy tratando de definir una función personalizada que me permita realizar un buscav que cumpla dos criterios. Os detallo hasta lo que he conseguido programar:
Public Function Buscarv2(ByVal Valor_buscado1 As String, ByVal Valor_buscado2 As String, ByVal Rango_de_busqueda As Excel.Range, ByVal Indicador_columnas1 As Integer, ByVal Indicador_columnas2 As Integer) As String
Dim cell As Excel.Range
On Error Resume Next
For Each cell In Rango_de_busqueda
If cell.Value = Valor_buscado1 And cell.Offset(0, Indicador_columnas1 - 1) = Valor_buscado2 Then
Buscarv2 = cell.Offset(0, Indicador_columnas2 - 1).Value
End If
Next
End Function
Mis problemas son:
1)¿Cómo podría conseguir que cuando encuentre el primer valor quer cumpla las 2 condiciones que busco salga del bucle y no me sobreescriba los valores?
2)Si no hubiese en el rango de datos nada que cumpla las dos condiciones requeridas, ¿cómo podría hacer para la fórmula me devolviese "FALSO"?
Soy bastante nuevo en esto de programar funciones personalizadas, asi que os pediría vuestra opinión acerca del código que he creado. ¿Creeis que es correcto? ¿Es el mejor método para lograr lo que persigo? ¿Cómo lo habrías enfocado vosotros?
Mil Gracias
Valora esta pregunta
0