MACRO DE BUSQUEDA CON MENSAJE DE ERROR

7 envíos / 0 nuevos
Último envío
Rayner Velez
Imagen de Rayner Velez
Offline
última acción: Hace 4 años 9 meses
alta: 24/06/2018 - 18:23
Puntos: 265
MACRO DE BUSQUEDA CON MENSAJE DE ERROR

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

 

 

 

AdjuntoTamaño
File lotes-planificacion.xlsm8.63 MB

Etiquetas: 

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 1 día
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Asigna el Selection.Find a

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

Rayner Velez
Imagen de Rayner Velez
Offline
última acción: Hace 4 años 9 meses
alta: 24/06/2018 - 18:23
Puntos: 265
MACRO DE BUSQUEDA CON MENSAJE DE ERROR

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

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 1 día
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
En tu código:Sub BUSCAR()''

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

Rayner Velez
Imagen de Rayner Velez
Offline
última acción: Hace 4 años 9 meses
alta: 24/06/2018 - 18:23
Puntos: 265
Cron, te agradezco por la

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

 

 

 

AdjuntoTamaño
File lotes-planificacion.xlsm8.66 MB

Rayner VZ

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 1 día
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Tienes razón, no me di cuenta

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

Rayner Velez
Imagen de Rayner Velez
Offline
última acción: Hace 4 años 9 meses
alta: 24/06/2018 - 18:23
Puntos: 265
te agradezco por tu valiosa

te agradezco por tu valiosa ayuda Cron

salio a la perfeccion

Rayner VZ