¿Cómo Crear un MsgBox que haga referencia al valor de una celda?

En un libro de excel tengo una hoja en donde capturo los datos de una persona como ser nombre apellido etc. En esa misma cree una macro con un botón que me permite copiar esos datos y pegarlos en una base de datos que esta en otra hoja y estos datos se pegan a partir de la columna B ya que en la columna A hay una fórmula que dice básicamente que si en la columna B esta vacía que siga así, si no esta vacía que copie el numero que esta en la celda anterior y le sume uno "=si(b2="","", a1+1) y así sucesivamente, esto me funciona muy bien, ahora lo que necesito es que al ejecutar la macro de copiar y pegar me aparezca un MsgBox que me diga cual fue el numero asignado al registro que acabo de copiar, este Msgbox debería dicir algo así "El Numero Asignado es" y luego me muestre el valor de la ultima celda que tenga datos en la columna A de la base de datos donde se copian los registros.

1 respuesta

Respuesta
1

Estaría muy bien si pones la macro que copia los datos en la base de datos, de esa forma sabría en cuál fila estás poniendo los datos.

Sin embargo, te anexo un ejemplo de cómo poner el mensaje, suponiendo que estás copiando el nuevo registro en la parte final de tu base.

Cambia "Base" por el nombre de tu hoja con la base de datos:

Sub mensaje()
'Por.Dante Amor
    Set h1 = Sheets("Base")
    u = h1.Range("B" & Rows.Count).End(xlUp).Row
    MsgBox "El Número Asignado es: " & h1.Cells(u, "A")
End Sub

Si ya tienes identificada la última fila de tu base de datos, entonces puede ser así:

    MsgBox "El Número Asignado es: " & Sheets("Base").Cells(ultimafila, "A")

Si tienes dudas de cómo adaptar el mensaje a tu macro, entonces escribe tu macro para poner el mensaje.


Saludos. Dante Amor

Si es lo que necesitas.

Hola Amigo

Esta el La macro que utilizo para copiar y pegar los datos de lo que te conté, ya le hice la modificación que me recomendaste pero aun así no me funciona, te lo envío para que me digas cual es el error que estoy cometiendo mil gracias

Sub Ingreso()
'Abre la base de datos "base de Datos Alumnos"
Sheets("Base de Datos Alumnos").Visible = True

'Desprotege la base de datos "Base de Datos Alumnos"
Sheets("Base de Datos Alumnos").Select
ActiveSheet.Unprotect ("betankool")

'identifica la ultima fila de la base de datos "Base de Datos Alumnos"
uf = Sheets("Base de Datos Alumnos").Range("B" & Rows.Count).End(xlUp).Row

'Copia los datos del formulario
Sheets("Ingreso Nuevos").Range("B5:B18").Copy

'selecciona la ultima fila de la base de datos "Base de Datos Alumnos" para pegrar los datos copiados
Sheets("Base de Datos Alumnos").Range("B" & uf + 1).PasteSpecial _
Paste:=xlPasteValues, operation:=xlNone, skipblanks:=False, Transpose:=True

'Protege la base de datos "Base de Datos Alumnos"
Sheets("Base de Datos Alumnos").Select
ActiveSheet.Protect ("betankool")

'Cierra la base de datos "base de Datos Alumnos"
Sheets("Base de Datos Alumnos").Visible = False

'Selecciona la hoja "Ingresos Nuevos"
Sheets("Ingreso Nuevos").Select

MsgBox "El Número Asignado es: " & Sheets("Base de Datos Alumnos").Cells(uf, "A")

'Limpia el Formulario y se ubica en el primer Campo
Sheets("Ingreso Nuevos").Range("B5:B18").Select
Selection.ClearContents
Range("B5").Select
ActiveWorkbook.Save
End Sub

La macro funciona bien, pero tienes que asegurarte que en la celda de la columna A copies o tengas la fórmula.

O prueba con esta línea que agregué:

Sheets("Base de Datos Alumnos").Range("A" & uf + 1) = Sheets("Base de Datos Alumnos").Range("A" & uf) + 1

La macro completa:

Sub Ingreso()
'Abre la base de datos "base de Datos Alumnos"
Sheets("Base de Datos Alumnos").Visible = True
'Desprotege la base de datos "Base de Datos Alumnos"
Sheets("Base de Datos Alumnos").Select
ActiveSheet.Unprotect ("betankool")
'identifica la ultima fila de la base de datos "Base de Datos Alumnos"
uf = Sheets("Base de Datos Alumnos").Range("B" & Rows.Count).End(xlUp).Row
'Copia los datos del formulario
Sheets("Ingreso Nuevos").Range("B5:B18").Copy
'selecciona la ultima fila de la base de datos "Base de Datos Alumnos" para pegrar los datos copiados
Sheets("Base de Datos Alumnos").Range("B" & uf + 1).PasteSpecial _
Paste:=xlPasteValues, operation:=xlNone, skipblanks:=False, Transpose:=True
'
Sheets("Base de Datos Alumnos").Range("A" & uf + 1) = Sheets("Base de Datos Alumnos").Range("A" & uf) + 1
'Protege la base de datos "Base de Datos Alumnos"
Sheets("Base de Datos Alumnos").Select
ActiveSheet.Protect ("betankool")
'Cierra la base de datos "base de Datos Alumnos"
Sheets("Base de Datos Alumnos").Visible = False
'Selecciona la hoja "Ingresos Nuevos"
Sheets("Ingreso Nuevos").Select
MsgBox "El Número Asignado es: " & Sheets("Base de Datos Alumnos").Cells(uf, "A")
'Limpia el Formulario y se ubica en el primer Campo
Sheets("Ingreso Nuevos").Range("B5:B18").Select
Selection.ClearContents
Range("B5").Select
'ActiveWorkbook.Save
End Sub

Hola de nuevo mira hice los cambios que me recomendaste pero sigo con problemas sera que puedo enviarte el archivo por correo para que veasa como funciona y así ver de que manera puedo hacer funcional el MsgBox, solo mándame tu dirección de e-mail para enviarte el archivo

Mil graiaas

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “betankool” y el título de esta pregunta.

Hola ya te envíe el correo mil gracias

Cambié tu fórmula de numeración para que la macro haga el consecutivo.

Sub Ingreso()
    Set h1 = Sheets("Ingreso Nuevos")
    Set h2 = Sheets("Base de Datos Alumnos")
    h2.Unprotect ("betankool")
    uf = h2.Range("B" & Rows.Count).End(xlUp).Row + 1
    'copiar y pegar
    h1.Range("B5:B18").Copy
    h2.Range("B" & uf).PasteSpecial _
    Paste:=xlPasteValues, operation:=xlNone, skipblanks:=False, Transpose:=True
    '
    If IsNumeric(h2.Range("A" & uf - 1)) Then
        num = h2.Range("A" & uf - 1) + 1
    Else
        num = 1
    End If
    h2.Range("A" & uf) = num
    h2.Protect ("betankool")
    'Limpia el Formulario y se ubica en el primer Campo
    h1.Range("B5:B18").ClearContents
    Range("B5").Select
    MsgBox "El Número Asignado es: " & num
    ActiveWorkbook.Save
End Sub

Saludos.Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas