buscar en otra hoja del mismo libro va pero de otro libro no. qu é

06/12/2009 - 20:57 por Antonio | Informe spam
Function encuentra2(k As Range, kc As Integer, ka As Range, kb As Workbook)
Dim fi, co, ho As Integer
fi = ka.Row
co = ka.Column
book = Workbooks(kb)
ho = book.Worksheet.Index
While Worksheets(ho).Cells(fi, co).Value <> ""
If Worksheets(ho).Cells(fi, co).Value = k.Value Then
encuentra2 = Worksheets(ho).Cells(fi, co + kc).Value
Exit Function
Else
fi = fi + 1
End If
Wend
encuentra2 = Null
End Function

ESTO NO FUNCIONA

Function encuentra(k As Range, kc As Integer, ka As Range)
Dim fi, co, ho As Integer
fi = ka.Row
co = ka.Column
ho = ka.Worksheet.Index
While Worksheets(ho).Cells(fi, co).Value <> ""
If Worksheets(ho).Cells(fi, co).Value = k.Value Then
encuentra = Worksheets(ho).Cells(fi, co + kc).Value
Exit Function
Else
fi = fi + 1
End If
Wend
encuentra = Null
End Function

ESTE SI FUNCIONA

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
07/12/2009 - 03:59 | Informe spam
hola, Antonio !

en la que no funciona, defines un argumento de tipo "workbook"
pero no indicas como haces el llamado a esta funcion y como es que le pasas este argumento (?????)

en el peor de los casos... utiliza la que si funciona (no ?)

saludos
hector.
Respuesta Responder a este mensaje
#2 Antonio
07/12/2009 - 08:43 | Informe spam
Hola Hector y gracias por interesarte,
tanto en un caso como otro pongo =encuentra o encuentra2(una celda, un
desplazamiento, un rango inicial y en el caso del workbookhe puesto de
todas las formas que se me ocurría, tgsc.xls lo mismo pero con ruta de
acceso pero se clava y no va, da resultado #valor, ya me va bien la que si
funciona pero me fuerza a pasar la tabl de datos a una hoja dentro de cada
libro y pretendía tener la fuente de datos que la bajo de internet o de un
as400 y es un libro independiente que se llena con un dataselect cada
mañana bueno lo dicho gracias y veré hasta que punto puedo cambiar el
dataselect para que me vuelque los datos actualizados en los libro diario y
demás, porcierto que me ha dado por empezar a guardarlos en el siti
windows.live y de momento va relativamente bien.

un saludo

"Héctor Miguel" wrote:

hola, Antonio !

en la que no funciona, defines un argumento de tipo "workbook"
pero no indicas como haces el llamado a esta funcion y como es que le pasas este argumento (?????)

en el peor de los casos... utiliza la que si funciona (no ?)

saludos
hector.


.

Respuesta Responder a este mensaje
#3 Héctor Miguel
07/12/2009 - 19:34 | Informe spam
hola, Antonio !

hubiera sido mas "sano" si pones una muestra del uso que haces de la funcion (exactamente)

cuando defines la funcion (que no funciona) y sus argumentos utilizas la siguiente declaracion:
Function encuentra2(k As Range, kc As Integer, ka As Range, kb As Workbook)


significa que el argumento de tipo "workbook" (kb) debe ser pasado como objeto
a menos que lo cambies en la declaracion a tipo cadena de texto (p.e.) ..., kb As String)
y podrias pasarlo como el nombre del libro: =encuentra2(una celda, un desplazamiento, un rango inicial, "libro fulano.xls")
OJO: que estaria pendiente indicar ademas, cual de las hojas en el "libro fulano.xls" (???)

(hay mas detalles, pero podriamos comenzar por este punto ?)

saludos,
hector.

__ OP __
tanto en un caso como otro pongo =encuentra o encuentra2(una celda, un desplazamiento, un rango inicial
y en el caso del workbook he puesto de todas las formas que se me ocurria
tgsc.xls, lo mismo pero con ruta de acceso, pero se clava y no va, da resultado #valor ...



__ previo __
en la que no funciona, defines un argumento de tipo "workbook"
pero no indicas como haces el llamado a esta funcion y como es que le pasas este argumento (?????)
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida