Macro que indique mensaje que dato no existe en hoja de excel

Mi situación es la siguiente, tengo un libro excel en donde tiene 2 hojas, la hoja1 se llama CARGA_DOC y la hoja2 RENDI_DOC, en la hoja CARGA_DOC se ingresan todos los datos, en este caso, códigos de barra que asigno a una oficina de correo en donde estos mismos después se les asignan a los mensajeros, y en la hoja RENDI_DOC se hace la devolución de estos mismos códigos que traen los mensajeros en el cual deben coincidir con los que están en un rango por ejemplo en la columna B de la hoja CARGA_DOC, y estando en la hoja RENDI_DOC al ingresar un código este no existe en la hoja CARGA_DOC columna B, me mande un mensaje indicando que dicho código no existe en hoja CARGA_DOC.

Atento a sus conocimientos y ayuda.

1 Respuesta

Respuesta
1

H o l a:

No mencionaste en cuál columna de la hoja RENDI_DOC, en la macro le puse la columna "A", si es otra columna, cambia en la macro en la siguiente línea la "A" por la letra de la columna:

If Not Intersect(Target, Columns("A")) Is Nothing Then

La macro la tienes que poner en los eventos de la hoja RENDI_DOC:

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Columns("A")) Is Nothing Then
        If Target = "" Then Exit Sub
        Set b = Sheets("CARGA_DOC").Columns("B").Find(Target, lookat:=xlWhole)
        If b Is Nothing Then
            MsgBox "Código no existe en hoja CARGA_DOC" & vbCr & vbCr & _
                   "                  " & Target, vbCritical, "VERIFICAR CÓDIGO"
            Target.Select
        End If
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(RENDI_DOC)
  4. Del lado derecho copia la macro

 Muchas Gracias! funcionó

Consulta, si es que me puedes ayudar, tengo un formulario en donde ingresos los códigos de barra mediante un lector láser, que tiene un botón aceptar y le asigné este código que funciona, 

Private Sub CommandButton1_Click()
Sheets("rendicion").Activate
If TextBox1 = "" Then
MsgBox "Está dejando campos requeridos vacios favor complete", vbExclamation, "Correo"
Else
Range("B" & Cells.Rows.Count).End(xlUp).Offset(1).Select
ActiveCell = TextBox1.Value
TextBox1 = ""
TextBox1.SetFocus
End If
End Sub

pero hay un pequeño detalle, es que al ingresar el código de barra de un documento, no se limpia al instante el textbox, se direcciona al botón ACEPTAR y debo dar nuevamente con el lector al código de barras o presionar ENTER y lo deja insertado en el rango columna B, lo cual recién ahí se limpia, lo que necesito es que se limpie e ingrese al instante el dato al marcar con el lector láser y volver ingresar otro código.

Donde habría que hacer la modificación? 

si puedes ayudarme por favor??? 

Claro, con gusto te ayudo, escribe una nueva pregunta y en el desarrollo de la pregunta pon: "para Dante Amor". La reviso y te envío la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas