Como colocar msgbox

Estimada Elsa vuelvo a precisar de su ayuda, tengo una macro a la que me gustaría colocarle un msgbox la macro al insertar un valor en la columna A se ejecuta y copia formulas en la siguiente fila, para buscar el valor ingresado en A, lo que quiero es que si el valor no esta en la base de datos despliegue un msgbox con la leyenda el código no existe y que al aceptar active un userfomr.

Gracias desde ya.

2 respuestas

Respuesta
1

No sé si entendí bien, pero la macro se ejecuta al ingresar datos en una col, es decir en el evento Change de la hoja... bien, ¿y ese dato se debe buscar en?, ¿Esta parte también está?.

Cópiame la macro para que agregue el msgbox, porque tengo que evaluar ese dato o esa búsqueda.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim finx As Integer
If Target.Count > 1 Then Exit Sub
If Target.Column = 1 And Target.Value <> "" Then
finx = Target.Row - 1
Application.EnableEvents = False
Range("B" & finx & ":L" & finx).Select
Selection.AutoFill Destination:=Range("B" & finx & ":L" & finx + 1), Type:=xlFillDefault
Range("Q" & finx & ":W" & finx).Select
Selection.AutoFill Destination:=Range("Q" & finx & ":W" & finx + 1), Type:=xlFillDefault
Range("Y" & finx & ":AX" & finx).Select
Selection.AutoFill Destination:=Range("Y" & finx & ":AX" & finx + 1), Type:=xlFillDefault
Range("AZ" & finx & ":BD" & finx).Select
Selection.AutoFill Destination:=Range("AZ" & finx & ":BD" & finx + 1), Type:=xlFillDefault
Range("O" & finx + 1) = Range("O" & finx) + 1
Target.Offset(0, 23).Select
Application.EnableEvents = True
ElseIf Target.Column = 24 Then
Target.Offset(0, -8).Select
End If
End Sub

Esta es la macro que controla lo que ocurre en la columna A, en la cual coloco un código de un producto que busca en otra hoja.

Como notara esta macro lo que hace es copiar las formulas de las filas anteriores, que buscan el código de la columna A, lo que quiero es que si no encuentra el código arroje un msgbox como... El código noexistre desea agregarlo y al aceptar, active un userfomr que ya tengo hecho,

Gracias .

Creo que le falta algo a tu macro... no estás buscando nada ! !

Te explico las 1ras líneas:

'si se modificaron varias celdas no ejecuta

If Target.Count > 1 Then Exit Sub

'si se ingresó un cambio en alguna celda de col A y no es vacía entonces.....
If Target.Column = 1 And Target.Value <> "" Then

'se guarda cuál es la fila anterior
finx = Target.Row - 1

'se evita que se vuelva a ejecutar esta rutina mientras se rellenan las filas
Application.EnableEvents = False

'se selecciona un rango y se rellena hacia abajo
Range("B" & finx & ":L" & finx).Select

Pero no hay ninguna búsqueda por lo que no podría mostrar un msgbox... algo te falta

Sdos

Elsa

Gracias por responder de nuevo Elsa, cuando selecciona el rango y rellena hacia abajo coloca formulas (buscarv), que buscan el código que coloco en A, pensé que por hay se podía colocar el Msg box.

Luego de arrastrar la fórmula, en la celda quedará el resultado. Entonces podrías evaluar si alguna celda quedó con error (#N/A)

Evaluarlo antes de colocar la fórmula no, porque la ref de arriba es distinta . Lo que tendrías que hacer antes que nada es buscar el dato con la instrucción SET

Set busco = Sheets(...).Range(...).Find(dato a buscar)

if busco is nothing then msgbox "No se encuentra este dato"

Fijate si lo podes adaptar a tu rutina.

Sdos

Elsa

Hola Elsa, haber si entendí con esa instrucción colocada en una macro puedo buscar un valor, para lo cual debería definir una variable, como por ejemplo una celda.

Si necesitas saber si el resultado de un fórmula dará error tenés que buscrla ntes con Set

dato_a_ buscar =Range("B" & finx)

Set.......

Si solo necesitas que la fórmula en caso de error devuelv 0 op vacío podes cambiar l fórmula:

=SI(ESERROR(BUSCARV (....));0;BUSCARV(....))

Sdos

Elsa

Gracias Elsa la verdad usted debe tener mucha paciencia para responder siempre dudas como las mías, ahora solo me resta ver como hago que al aceptar en el msg box me lance un userform para agregar ell código que no existe.

Elsa yo de nuevo estuve probando con códigos que no están en la tabla y funciona si el resultado de la formula es (#N/A), me nuestra el msg box, pero al colocar un código que si existe también me arroja el mismo Msg box "no se encuentra este dato", y yo solo quiero el msg cuando el código no existe.

Gracias de nuevo.

Escribime el código aquí y lo ajusto

Respuesta

http://www.programarexcel.com/2013/10/como-crear-un-msgbox-vba-en-excel.html?m=1

Aca hay un ejemplo para crear msgbox

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas