estoy trabajando con la sgte macro para buscar dos clases de valores en un rango DE NOMBRE (nm.lotepedido)
escribiendo el valor en la celda L5 DE LA HOJA TABLA.IMP
la consulta es: que quisiera que si no encuentra el valor me de un mensaje que diga (el valor no existe en la data)
Sub BUSCAR()
'
' BUSCA DENTRO DE UN RANGO (NM) EL VALOR REGISTRADO EN UNA CELDA ESPECIFICA (L5)
'
Application.Goto Reference:="NM.LOTEPEDIDO"
Selection.Find(What:=Range("L5").Value, After:=ActiveCell, LookIn:=xlFormulas _
, lookat:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Select
End Sub
LA MACRO ESTA EN EL MODULO10
DEL ARCHIVO ADJUNTO
DE ANTEMANO MUCHAS GRACIAS
TAMBIEN QUISIERA OTRA MACRO QUE BUSQUE DE IGUAL MANERA PERO QUE EN VEZ DE LA CELDA (L5) TENGA UN NOMBRE PARA PODER BUSCARLA DESDE CUALQUIER HOJA
Adjunto | Tamaño |
---|---|
lotes-planificacion.xlsm | 8.63 MB |
Asigna el Selection.Find a una variable de tipo range. Algo así como:
Dim celda As Range
set celda = Selection.Find(.......) 'sin el .Activate final
If celda is nothing then
msgbox "el valor no existe"
else
Lo que quieras que haga con la celda
end if
Un saludo
te agradezco por tu respuesta
sin embargo, soy principiante con el tema de las macros
y la verdad nose como agregar los parametros que me sugieres
seria posible que en el codigo que ya tengo hagas la modificacion correspondiente ?
solo necesito el mensaje que aparezca cuando no encuentre el valor
nuevamente gracias de antemano
Rayner VZ
En tu código:
Sub BUSCAR()
'
' BUSCA DENTRO DE UN RANGO (NM) EL VALOR REGISTRADO EN UNA CELDA ESPECIFICA (L5)
'
Dim celda As Range
Application.Goto Reference:="NM.LOTEPEDIDO"
Set celda = Selection.Find(What:=Range("L5").Value, After:=ActiveCell, LookIn:=xlFormulas _
, lookat:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If not celda is nothing then
ActiveCell.Select
else
msgbox "el valor no existe"
End Sub
Aquí lo he hecho al revés que antes, pero es lo mismo:
si celda es nothing
si not celda es nothing
Un saludo
Cron, te agradezco por la respuesta
es justamente lo que necesito (el mensaje)
sin embargo ahora no encuentra el valor buscado solo se dirige la celda K9
anteriomente encontraba el codigo y se ubicaba en la celda que buscaba (eso necesito que quede igual)
adicional, es necesario que las columnas queden sombreadas al momento de salir el mensaje ?
EN EL ARCHIVO ADJUNTO REGISTRE TU MACRO, EN LA HOJA TABLA.IMP
BOTON: MACRO DE CRON (MODULO 11/ Sub BUSCARCONMSG()
PORFA REVISA QUE ESTOY HACIENDO MAL, GRCS
Rayner VZ
Tienes razón, no me di cuenta.
Sustituye donde dice:
Activecell.Select
por:
celda.Select
Y ya debería funcionar. Te selecciona la primera ocurrencia de lo que estás buscando.
Un saludo
te agradezco por tu valiosa ayuda Cron
salio a la perfeccion
Rayner VZ