# Crear cuadro de mensaje cuando inicia un archivo de Excel



## rapidito78840

Por favor si alguien pudiera facilitarme el codigo que pueda insertar en un archivo de Excel, de modo de que cuando se abra por primera vez el archivo, salga un cuadro de texto como mensaje de bienvenida.

claro en vez de "bienvenida" pondria mi nombre y mi correo electronico
para que sepan quien es el autor de el archivo

Saludos y gracias por su ayuda

AMIGOS; ya alguien me escribio a mi correo y me dio el codigo:



		Code:
__


Sub Auto_open()
MsgBox ("que tengas un buen dia")

End Sub


ya lo puse y sale al inicio de abrir el archivo de excel, pero ahora podrian ayudarme en decirme COMO SE PUEDE FORMATEAR ESTAS LETRAS?
quisiera darle color - fondo- o algo de tipo de fuente personal ....

podrian ayudarme por favor ?

saludos y gracias nuevamente !!!


----------



## ST2

hola rapidito:
creo que te seria mejor usar un form y una(s) etiqueta(s) con el mensaje de bienvenida y que lo abra el evento open de thisworkbook



		Code:
__


Private Sub Workbook_Open()
    UserForm1.Show
End Sub




		Code:
__


Private Sub UserForm_Activate()
With Label1
    .Caption = "Hola " & Application.UserName
    .Font = "arial"
    .Font.Size = 14
    .Font.Bold = True
    .ForeColor = &HFF&
End With

With Label2
    .Caption = "Son las " & Time
    .Font = "arial"
    .Font.Size = 14
    .Font.Bold = True
    .ForeColor = &HFF0000
End With
Application.Wait Now + TimeValue("00:00:02")
Me.Hide
End Sub


----------



## rapidito78840

Gracias ... dejame probarlo! solamente por favor me podrias decir... 

donde pego este codigo?  en VBA ? en el modulo 1 donde tengo el otro codigo?



		Code:
__


Sub Auto_Open()
    Dim hora As Double
    Dim saludo As String
    hora = (Now - Int(Now)) * 24
    Select Case hora
        Case 5 To 12
            saludo = " B U E N O S    D I A S   !   "
        Case 12 To 19
            saludo = "BUENAS TARDES    !   "
        Case Else
            saludo = "BUENAS NOCHES    ! "
        End Select
    MsgBox saludo & " Servicios Contables Azor ®  "
    End Sub


pegue el codigo asi, en el modulo 1:



		Code:
__


Private Sub Workbook_Open()
    UserForm1.Show
End Sub

Private Sub UserForm_Activate()
With Label1
    .Caption = "Hola " & Application.UserName
    .Font = "arial"
    .Font.Size = 14
    .Font.Bold = True
    .ForeColor = &HFF&
End With

With Label2
    .Caption = "Son las " & Time
    .Font = "arial"
    .Font.Size = 14
    .Font.Bold = True
    .ForeColor = &HFF0000
End With
Application.Wait Now + TimeValue("00:00:02")
Me.Hide
End Sub



pero cuando lo corro me sale esto:



		Code:
__


Error de compilacion:
el uso de la palabra ME no es valido



y si le quito la palabra "ME", me sale esto:



		Code:
__


Error de compilacion:
no se ha definido Sub o Function


que estoy haciendo mal?

saludos y gracias por la respuesta


----------



## ST2

hola rapidito:
tienes razon ,me faltaron algunas aclaraciones,ahi voy... :-> 
 1.-la primera subrutina la debes colocar en 'thisworkbook',para lo cual debes pulsar alt+F11 y te abrira el editor de visual basic,ahi busca un pequeño icono que tiene el nombre de "Thisworkbook"
y copia/pega:


		Code:
__


Private Sub Workbook_Open() 
    UserForm1.Show 
End Sub


2.-el codigo que inicia con "UserForm_Activate",presupone que insertaste un fomulario  desde el menu Insertar/formulario de la barra de herramientas del VBE (Editor de visual basic),asi que si no lo tienes debes insertarlo,despues le das docleclick y copias/pegas la macro,debes sustituir el evento click (UserForm_Click) que te saldra al hacer dobl click sobre el formulario

3.-tu macro auto_open debe ir en un modulo estandar,pero se me ocurrio adaptar todo par que lo tengas en el formulario,pudiendo quedar asi:



		Code:
__


Private Sub UserForm_Activate()
Dim hora As Double
    Dim saludo As String
    hora = (Now - Int(Now)) * 24
    Select Case hora
        Case 5 To 12
            saludo = " B U E N O S    D I A S   !   "
        Case 12 To 19
            saludo = "BUENAS TARDES    !   "
        Case Else
            saludo = "BUENAS NOCHES    ! "
        End Select
Me.Caption = saludo & " Servicios Contables Azor ®  "

With Label1
    .Caption = "Hola " & Application.UserName
    .Font = "arial"
    .Font.Size = 14
    .Font.Bold = True
    .ForeColor = &HFF&
End With

With Label2
    .Caption = "Son las " & Time
    .Font = "arial"
    .Font.Size = 14
    .Font.Bold = True
    .ForeColor = &HFF0000
End With
Application.Wait Now + TimeValue("00:00:03")
Me.Hide
End Sub


como el tiempo de 2 seg. se me hizo muy breve le aumente  a 3 segundos   

si continuas con problemas,puedes checarte este ejemplo:
http://tinyurl.com/2qwtw5


----------



## rapidito78840

gracias . . .dejame probar ahora con estos cambios
saludos


----------



## leorr19

*no me funciona el comando me dice lo siguiente: que ha ocurrido un error 424 y me dice se encuentra  en la parte del with label2, me ayudas a ver que sucede??? porfavor*



ST2 said:


> hola rapidito:
> tienes razon ,me faltaron algunas aclaraciones,ahi voy... :->
> 1.-la primera subrutina la debes colocar en 'thisworkbook',para lo cual debes pulsar alt+F11 y te abrira el editor de visual basic,ahi busca un pequeño icono que tiene el nombre de "Thisworkbook"
> y copia/pega:
> 
> 
> Code:
> __
> 
> 
> Private Sub Workbook_Open()
> UserForm1.Show
> End Sub
> 
> 
> 2.-el codigo que inicia con "UserForm_Activate",presupone que insertaste un fomulario  desde el menu Insertar/formulario de la barra de herramientas del VBE (Editor de visual basic),asi que si no lo tienes debes insertarlo,despues le das docleclick y copias/pegas la macro,debes sustituir el evento click (UserForm_Click) que te saldra al hacer dobl click sobre el formulario
> 
> 3.-tu macro auto_open debe ir en un modulo estandar,pero se me ocurrio adaptar todo par que lo tengas en el formulario,pudiendo quedar asi:
> 
> 
> 
> Code:
> __
> 
> 
> Private Sub UserForm_Activate()
> Dim hora As Double
> Dim saludo As String
> hora = (Now - Int(Now)) * 24
> Select Case hora
> Case 5 To 12
> saludo = " B U E N O S    D I A S   !   "
> Case 12 To 19
> saludo = "BUENAS TARDES    !   "
> Case Else
> saludo = "BUENAS NOCHES    ! "
> End Select
> Me.Caption = saludo & " Servicios Contables Azor ®  "
> 
> With Label1
> .Caption = "Hola " & Application.UserName
> .Font = "arial"
> .Font.Size = 14
> .Font.Bold = True
> .ForeColor = &HFF&
> End With
> 
> With Label2
> .Caption = "Son las " & Time
> .Font = "arial"
> .Font.Size = 14
> .Font.Bold = True
> .ForeColor = &HFF0000
> End With
> Application.Wait Now + TimeValue("00:00:03")
> Me.Hide
> End Sub
> 
> 
> como el tiempo de 2 seg. se me hizo muy breve le aumente  a 3 segundos
> 
> si continuas con problemas,puedes checarte este ejemplo:
> http://tinyurl.com/2qwtw5





no me funciona el comando me dice lo siguiente: que ha ocurrido un error 424 y me dice se encuentra  en la parte del with label2, me ayudas a ver que sucede??? porfavor


----------

