Como posicionar un msgbox

En una macro dónde busco unas claves, al encontrar la clave saco un msgbox con una pregunta, pero los msgbos salen, en principio, en el centro de la pantalla,

¿Se pueden posicionar los msgbox? Y si se pueden ¿Cómo?

3 respuestas

Respuesta
4

No se puede posicionar el msgbox, no está dentro de sus parámetros:

MsgBox(prompt[, buttons] [, title] [, helpfilecontext])

Lo que puedes hacer es simular el msgbox con userform.

Crea un userform con un label y commandbutton

Este sería el código en el userform

Private Sub CommandButton1_Click()
'Por.DAM
    Unload Me
End Sub
Private Sub UserForm_Activate()
'Por.DAM
    Label1.Caption = "Mensaje que quieres que aparezca, el mensaje aparece en un label"
    Me.Caption = "Título del mensaje"
    CommandButton1.Caption = "Aceptar"
    '
    'Posición del userform
    Me.Top = 10
    Me.Left = 20
End Sub

Cambia las medidas .Top y .Left para posicionar el userform .Top = 0 es hasta arriba de la pantalla, .Left = 0 es hasta la izquierda de la pantalla.

Ante todo Dante, muchas gracias por tu pronta respuesta, pero he de pedir disculpas por no explicar bien, quizás, el problema. La cuestión es que el msgbox, si bien la cuestión principal es su ubicación, es un msgbox de estilo Yes ó No, con dos botones para poder gestionar la respuesta, supongo que habrá que cambial alguna opción en el CommandButton1 ó del Caption, me preguntaba si podrías indicarme los cambios para poder usar el Yes ó el No.

MUCHAS GRACIAS

En la macro del módulo tienes que declarar como public una variable, en este ejemplo declare public la variable respuesta. Recuerda que esta declaración de variables debe ir hasta arriba de todo tu código

Macro en el módulo

Public respuesta
Sub macro()
'Por.DAM
    '
    'tu códgio
    UserForm1.Show
    'tu código
    If respuesta = "SI" Then
        MsgBox "la respuesta es si"
    Else
        MsgBox "la respuesta es no"
    End If
    '
End Sub

Macro en el userform

Private Sub CommandButton1_Click()
'Por.DAM
    respuesta = "SI"
    Unload Me
End Sub
Private Sub CommandButton2_Click()
'Por.DAM
    respuesta = "NO"
    Unload Me
End Sub
Private Sub UserForm_Activate()
'Por.DAM
    Label1.Caption = "Presiona SI para continuar o presiona NO para cancelar"
    Me.Caption = "Título del mensaje"
    CommandButton1.Caption = "SI"
    CommandButton2.Caption = "NO"
    '
    'Posición del userform
    Me.Top = 0
    Me.Left = 0
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'Por.DAM
    If CloseMode = 0 Then Cancel = True
End Sub

Así se vería

Este código en el userform es para que no cierren el userform con la 'X' y tengan que seleccionar SI o NO

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'Por.DAM
If CloseMode = 0 Then Cancel = True
End Sub

Si quieres que se salgan con la 'X", entonces borra las líneas anteriores del userform y cambia la macro del módulo por esta

Sub macro()
'Por.DAM
    '
    'tu códgio
    UserForm1.Show
    'tu código
    If respuesta = "SI" Then
        MsgBox "la respuesta es si"
    ElseIf respuesta = "NO" Then
        MsgBox "la respuesta es no"
    Else
        MsgBox "cerró el userform y no seleccionó una respuesta"
    End If
    '
    respuesta = ""
End Sub
Respuesta

If you want to display a message box on your website and make it look clean and professional, then you should know how to position that message box. I prefer to check this 바카라사이트 and get more new ways for finding the gambling site.  In this article, I will share with you some of the important guidelines on how to position your msg box in an attractive manner.

Respuesta

Hi there, I found your site via Google while looking for a related topic, your web site came up, it looks great. I’Ve bookmarked it in my google bookmarks. 바카라사이트

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas