Necesito ayuda para ejecutar una macro si un valor de una celda existe en un rango en otro libro

Hola Buen Día, Necesito ayuda con una macro que no logro conseguir....

Tengo lo siguiente:

Sub Identificación()

Dim Identidad As String

Identidad = InputBox("Coloque el número de Identidad")

Range("A1").SelectActiveCell.Value = identidad_persona

Necesito que dependiendo de que el valor que se introduce en el InputBox exista en un rango en otro libro, me ejecute una siguiente acción....

Algo que funcione como la siguiente macro:

If Application.CountIf(Worksheets("Hoja2").Range("A1:A20"),Worksheets("Hoja1").Range("A1")) > 0 Then

Call Macro2

Else

MsgBox ("código de identidad no existe")

End If

Pero el problema es que el rango donde debe encontrarse ese valor no esta en una hoja del mismo libro sino de otro libro distinto....

Si pueden ayudarme les agradezco mucho y gracias por la molestia y la atención...

Jazc.

1 respuesta

Respuesta
1

Esta sería tu solución: Esta macro se tiene que ejecutar desde el libro donde queremos que se ejecute la segunda macro y tendrás que cambiar el texto marcado en negrita por el nombre del libro que tiene la base de datos. También es importante avisar que los libros tienen que estar guardados en el directorio predeterminado de excel. (Para cambiar la ubicación de los archivos tendríamos que añadir un path a la macro).

También he marcado el negrita el rango en que el voy a buscar la palabra clave, por si lo quieres cambiar. (Está probada y funciona perfectamente)

Recuerda finalizar y puntuar mi trabajo.

Sub busca_y_ejecuta()

mio = ActiveWorkbook.Name

clave = InputBox("cual es la palabra clave???")

If clave = "" Then Exit Sub

Workbooks.Open "segundo_fichero.xlsx"

otro = ActiveWorkbook.Name

Workbooks(mio).Activate

Set busca = Workbooks(otro).Sheets(1).Range("a1:b100").Find(clave, LookIn:=xlValues, lookat:=xlWhole)

If Not busca Is Nothing Then

MsgBox "ok, solo queda sustituir este msgbox por el nombre de la macro para que se ejecute"

Workbooks(otro).Close False

Else

MsgBox "no se encuentra en el rango de estudio"

Workbooks(otro).Close False

End If

End Sub

Muchas gracias, de verdad me ha funcionado y me has ayudado un montón tenia tiempo buscando esa respuesta...


Daré por terminado el tema sin embargo tuve un pequeño inconveniente, que si de alguna manera puedes ayudarme estaré aun mucho mas agradecido... Pasa que en el rango en que se examinaba los datos, las celdas estaban con formato de numero usando separador de miles, y al momento de buscarlos no se por que razón no me funciona correctamente, en el InputBox colocaba el numero solo, el numero con puntos, y nada, es que en el rango que necesito evaluar todos los datos son en decenas de millones, tuve que establecer el formato de celda como numero sin usar separadores de miles y solo asi funcionó.. no me quedó mas opción...
Es que ese formato de datos ademas de ser base de datos, me funciona como formato informativo y al imprimirlo pues seria mejor que los datos estuviesen separados por puntos para hacer mas fácil la ubicación visual de los mismos...


Pero si no hay mas que hacer igual me ha servido de mucho y estoy muy agradecido por tu ayuda!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas