Desarrollo de soluciones 

con Microsoft Excel 97 / 2000

Handhelds Compaq

Compre en línea y aproveche las espectaculares ofertas COMPAQ.

Espectacular promoción Compaq Chile

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Eres el visitante Nº

 

Como crear Menús Emergentes

Los ejemplos mostrados en esta sección se encuentran comprimidos en formato *.zip.

 

 

 

Presione aquí para descargar este ejemplo. custompopupmenu.zip .

Este archivo contiene un ejemplo de un menú emergente personalizado, que se activa al presionar el botón derecho del mouse en una hoja de Excel o en un formulario personalizado.

 

El siguiente código en VBA se encuentra en el Modulo1 del Editor de Visual Basic y es el que crea el menú emergente personalizado. 

 

Para ver el código desde el editor de Visual Basic, presione simultáneamente las teclas ALT+F11, desde Excel.

 

 

 

Option Explicit

Const PopUpCommandBarName As String = "TemporaryPopupMenu"

Sub DeletePopUp()
On Error Resume Next
CommandBars(PopUpCommandBarName).Delete
On Error GoTo 0
End Sub


Sub CreatePopUp()
Dim cb As CommandBar
DeletePopUp
Set cb = CommandBars.Add(PopUpCommandBarName, msoBarPopup, False, True)
With cb
With .Controls.Add(Type:=msoControlButton)
.OnAction = "MyMacroName"
.FaceId = 71
.Caption = "Menu 1"
.TooltipText = "Custom Tooltip Text 1"
End With
With .Controls.Add(Type:=msoControlButton)
.OnAction = "MyMacroName"
.FaceId = 72
.Caption = "Menu 2"
.TooltipText = "Custom Tooltip Text 2"
End With
With .Controls.Add(Type:=msoControlButton)
.OnAction = "MyMacroName"
.FaceId = 73
.Caption = "Menu 3"
.TooltipText = "Custom Tooltip Text 3"
End With
End With
Set cb = Nothing
End Sub


Sub DisplayCustomPopUp()
Application.CommandBars(PopUpCommandBarName).ShowPopup
End Sub


Sub DisplayExampleUserForm()
Load UserForm1
UserForm1.Show
Unload UserForm1
End Sub


Sub MyMacroName()
Dim ctrl As CommandBarControl
If Not UserForm1.Visible Then
Set ctrl = Application.CommandBars.ActionControl
ActiveCell.Formula = ctrl.Caption
Set ctrl = Nothing
Else
If Application.International(xlCountrySetting) = 47 Then
MsgBox "This could be your macro running!", vbInformation, ThisWorkbook.Name
Else
MsgBox "Aqui debe incluir su macro o función personalizada!", vbInformation, ThisWorkbook.Name
End If
End If
End Sub

 

 

El siguiente código se encuentra en la sección Sheet1 del Editor de Visual Basic.

 

En esta sección (Sheet1), se almacena el código que se ejecutará cuando ocurran los eventos respectivos en la hoja activa. Se ejecutarán solamente los eventos a los que se les ha asignado código.

 

Para ver el código en el editor de Visual Basic, presione simultáneamente las teclas ALT+F11 desde Excel y luego haga doble clic en la sección Sheet1 ubicada a la izquierda de la pantalla.

 

 

Option Explicit

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True 
DisplayCustomPopUp
End Sub

 

 

El siguiente código se encuentra en la sección ThisWorkBook del Editor de Visual Basic.

 

En esta sección (ThisWorkBook), se almacena el código que se ejecutará cuando ocurran los eventos respectivos en el libro activo. Se ejecutarán solamente los eventos a los que se les ha asignado código.

 

Para ver el código en el editor de Visual Basic, presione simultáneamente las teclas ALT+F11 desde Excel y luego haga doble clic en la sección ThisWorkBook ubicada a la izquierda de la pantalla.

 

 

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
DeletePopUp 
End Sub

Private Sub Workbook_Open()
CreatePopUp 
End Sub

 

El siguiente código se encuentra en la sección UserForm1 del Editor de Visual Basic.

 

En esta sección (UserForm1), se almacena el código que se ejecutará cuando ocurran los eventos respectivos en el formulario personalizado activo. Se ejecutarán solamente los eventos a los que se les ha asignado código.

 

Para ver el código en el editor de Visual Basic, presione simultaneamente las teclas ALT+F11 desde Excel, luego haga doble clic en la sección UserForm1 ubicada a la izquierda de la pantalla y finalmente haga doble clic sobre el formulario personalizado.

 

 

 

Private Sub btnClose_Click()
Me.Hide
End Sub

Private Sub Label1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = 2 Then 
DisplayCustomPopUp
End If
End Sub

Private Sub UserForm_Initialize()
If Application.International(xlCountrySetting) = 47 Then
Me.Label1.Caption = "Right-click in this UserForm to display the custom popup menu."
Me.btnClose.Caption = "Close"
Else
Me.Label1.Caption = "Haga clic con el botón derecho del mouse para mostrar el menú emergente personalizado"
Me.btnClose.Caption = "Cerrar"
End If
End Sub


Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = 2 Then 
DisplayCustomPopUp
End If
End Sub

 

 

<---volver

  Convierte tus planos en papel en archivos CAD - Pincha Aquí

Microsoft Excel 97 / 2000 y el lenguaje de programación Visual Basic para Aplicaciones, son marcas registradas de Microsoft Corporation

Desarrollo de Soluciones con Microsoft Excel 97 / 2000 - Sergio Carrasco Ríos - Santiago de Chile - Desde Octubre del 2000.

Sus consultas envíelas al e-mail : gorita@ctcinternet.cl

 

1