GRACIAS KL, Y DISCULPA QUE HASTA AHORA TE RESPONDA, ESTUVE DE VACACIONES
TE RESPONDO TUS PREGUNTAS... GRCS
Hola Marvin,
Unas preguntas:
1) ?El archivo LIBRO.TXT me imagino debera estar abierto al ejecutar tu
codigo, no? De lo contrario habria que incluir la ruta completa en la
formula. ?Cual es la ruta?
LA RUTA PUEDE SER CUALQUIERA NO? O DEBEMOS ESPECIFICAR ALGUNA?
2) ?Si tal como sugiere la extension el archivo LIBRO.TXT es un archivo de
texto como puede tener mas de una hoja?
TIENES RAZON ME EQUIVOQUE, EL ARCHIVO ES XLS
3) ?La busqueda tiene que realizarse mediante formula necesariamente o se
puede hacerlo mediante instrucciones VBA devolviendo los resultados finales
como constantes?
DE PREFERENCIA POR FORMULA, PERO ES POSIBLE HACERLO POR INTRUCCIONES VB,
SERIA MÁS LENTO EL PROCESO NO?
4) ?Cual es el nombre de la segunda hoja del archivo LIBRO.TXT en la cual
hay que buscar?
DE IGUAL MANERA PUEDE SER CUALQUIERA, POR ESO NO HAY PROBLEMA
5) ?El rango de busqueda en la segunda hoja es el mismo que el de la
primera?
ES CORRECTO, CONTIENEN LOS MISMOS CAMPOS, DIGAMOS QUE ES UNA CONTINUACIÓN DE
LA PRIMER HOJA
6) ?Si el valor se encuentra en ambas hojas, cual tiene la preferencia?
NO PUEDE SER YA QUE COMO TE COMENTE EN LA PREGUNTA ANTERIOR, ES
CONTINUACIÓN, LOS VALORES DE BUSQUEDA NO SE REPITEN
7) ?Si el valor no se encuentra en ninguna de las tablas es necesario
devolver error o podria ser directamente el "No Existe" sin tener que
emplear la segunda formula?
ES CORRECTO, PUEDE SER DIRECTO O UTILIZAR LA SEGUNDA FORMULA..
De momento te paso tu codigo optimizado, pero sin incluir la posibilidad de
buscar en dos hojas (lo cual estara sujeto a las respuestas que me des a las
7 preguntas de arriba):
Dim rng As Range
Windows("RIH_" + Dia + "" + Mes + "" + Anio + "_R8_10DIG.xls").Activate
Set rng = Range(Cells(2, "G"), Cells(2, "G").End(xlDown))
rng.FormulaR1C1 = _
"=IF(AND(RC[-1]>=VLOOKUP(RC[-1],'[LIBRO.TXT]LIBRO'!R3C[-6]:R10110C[15],1,1),RC[-1]<=VLOOKUP(RC[-1],'[LIBRO.TXT]LIBRO'!R3C[-6]:R10110C[15],2,1)),VLOOKUP(RC[-1],'[LIBRO.TXT]LIBRO'!R3C1:R10110C22,3,1),""No
Existe"")"
rng.Offset(, 1).FormulaR1C1 ="=IF(ISERROR(RC[-1]),""No Existe"",RC[-1])"
Saludos,
KL
"Marvin" <Marvin@discussions.microsoft.com> wrote in message
news:6D8075F3-9B46-40D6-94D0-65EA430C1736@microsoft.com...
> QUE TAL GRUPO, ALGUIEN DE UDS SABE DE QUE MANERA PUEDO MODIFICAR MI
> INTRUCCION DE BUSQUEDA PARA QUE CON ESTA MISMA REALICE LA BUSQUEDA TOMANDO
> EN
> CUENTA DATOS DE DOS HOJASEN EL SIGUIENTE CODIGO REALIZO LA BUSQUEDA
> SOBRE
> UNA UNICA HOJA... PERO DEBIDO A LA CANTIDAD DE DATOS HE TENIDO QUE AGREGAR
> UNA SEGUNDA HOJA, ENTONCES QUIERO QUE UTILIZANDO LA MISMA INSTRUCCION ME
> BUSQUE UN DATOS PERO DENTRO DE DOS HOJAS... ES POSIBLE??
>
> Windows("RIH_" + Dia + "" + Mes + "" + Anio + "_R8_10DIG.xls").Activate
> Range("G2").Select
> ActiveCell.FormulaR1C1 = _
>
> "=+IF(AND(RC[-1]>=VLOOKUP(RC[-1],'[LIBRO.TXT]LIBRO'!R3C[-6]:R10110C[15],1,1),RC[-1]<=VLOOKUP(RC[-1],'[LIBRO.TXT]LIBRO'!R3C[-6]:R10110C[15],2,1)),VLOOKUP(RC[-1],'[LIBRO.TXT]LIBRO'!R3C1:R10110C22,3,1),""No
> Existe"")"
> Range("G2").Select
> Selection.Copy
> Range(Selection, Selection.End(xlDown)).Select
> ActiveSheet.Paste
> Range("H2").Select
> Application.CutCopyMode = False
> ActiveCell.FormulaR1C1 = "=+IF(ISERROR(RC[-1]),""No Existe"",RC[-1])"
> Range("H2").Select
> Selection.Copy
>
Leer las respuestas