.
Otros ejemplos con formularios de Excel puedes verlos en el playlist de nuestro canal que trata sobre el tema haz click en el siguiente link Formularios de Excel.
Si te estás iniciando en la operación de Excel o requieres afirmar conocimientos, recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.
if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}
⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
Quizá sea de utilidad también
Como abrir formularios de Excel desde un Listbox
Como Eliminar el Boton X o Cerrar de un Formulario de Excel
Como Crear un Menú Flotante que se Desplace por la Hoja Excel con Scroll o Barras Desplazamiento
En realidad la autoforma es una imagen que emula una flecha clásica de una autoforma, la cual está montada sobre un formulario de Excel al cual se le ha quitado la barra de titulos donde normalmente está la X de cerrar el formulario.
Para lograr esto se pone en un modulo el siguiente código:
mhWndForm = FindWindow(«ThunderDFrame», MeCaption)
lSty = GetWindowLong(mhWndForm, -16)
lSty = lSty And Not &HC00000
SetWindowLong mhWndForm, -16, lSty
DrawMenuBar mhWndForm
Es preciso recordar que el formulario se debe poner en modo no modal, para ello se puede hacer mediante código o directamente en las propiedades, mediante código se debe escribir el siguiente código en el evento inicializar del formulario:
UserFrom1.Show vbModal
En el caso que se quiera directamente establecerlos en las propiedades se debe cambiar las propiedades del formulario ShowModal a False.
ShowModal=False debe establecer en las propiedades del formulario.
El Ejemplo de Macro llamado Como Crear Boton Flotante o Una Autoforma que se Desplace a Medida que se Hace Scroll se puede descargar desde el final del post, a continuación el código contenido en el ejemplo.
Código que se inserta en un Formulario de Excel
‘*************** https://macrosenexcel.com ******** https://www.youtube.com/c/programarexcel?sub_confirmation=1 ******
Dim FormX, FormYPrivate Sub CommandButton2_Click()
MsgBox («Visita http://programarexcel.com»), vbInformation, «AVISO»
End Sub
Private Sub UserForm_Click()
MsgBox («Visita https://macrosenexcel.com»), vbInformation, «AVISO»
End Sub
Private Sub UserForm_Initialize()
Dim sql As String, I As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
EliminarTitulo Me.Caption
With UserForm4
.Height = 42
.Top = 300
.Left = 80
.Width = 60
End With
End Sub
Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single)
If Button = 1 Then FormX = x ‘: FormY = Y
End Sub
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single)
If Button = 1 Then Me.Left = Me.Left + (x – FormX) ‘: Me.Top = Me.Top + (Y – FormY)
End Sub
Código que se inserta en un módulo
Dim FormX, FormY
Private Sub CommandButton2_Click()
MsgBox («Visita http://programarexcel.com»), vbInformation, «AVISO»
End Sub
Private Sub UserForm_Click()
MsgBox («Visita https://macrosenexcel.com»), vbInformation, «AVISO»
End Sub
Private Sub UserForm_Initialize()
Dim sql As String, I As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
EliminarTitulo Me.Caption
With UserForm4
.Height = 42
.Top = 300
.Left = 80
.Width = 60
End With
End Sub
Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single)
If Button = 1 Then FormX = x ‘: FormY = Y
End Sub
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single)
If Button = 1 Then Me.Left = Me.Left + (x – FormX) ‘: Me.Top = Me.Top + (Y – FormY)
End Sub
#If VBA7 And Win64 Then
‘Si es de 64 bits
Public Declare PtrSafe Function ShellExecute Lib «shell32.dll» Alias «ShellExecuteA» (ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr
Public Declare PtrSafe Function FindWindow Lib «USER32» Alias «FindWindowA» (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Public Declare PtrSafe Function GetWindowLongPtr Lib «USER32» Alias «GetWindowLongPtrA» (ByVal hwnd As LongPtr, ByVal nIndex As Long) As LongPtr
Public Declare PtrSafe Function SetWindowLongPtr Lib «USER32» Alias «SetWindowLongPtrA» (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr
Public Declare PtrSafe Function DrawMenuBar Lib «USER32» (ByVal hwnd As Long) As LongPtr
Public Declare PtrSafe Function RegOpenKeyA Lib «advapire32.dll» (ByVal hKey As LongPtr, ByVal lpSubKey As String, phkResult As LongPtr) As LongPtr
#Else
‘Si es de 32 bits
Public Declare Function ShellExecute Lib «shell32.dll» Alias «ShellExecuteA» (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Declare Function FindWindow Lib «USER32» Alias «FindWindowA» (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetWindowLong Lib «USER32» Alias «GetWindowLongA» (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib «USER32» Alias «SetWindowLongA» (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function DrawMenuBar Lib «USER32» (ByVal hwnd As Long) As Long
Public Declare Function RegOpenKeyA Lib «advapire32.dll» (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
#End If
Sub EliminarTitulo(MeCaption)
Dim lSty As Long
Dim hMenu As Long
Dim mhWndForm As Long
mhWndForm = FindWindow(«ThunderDFrame», MeCaption)
lSty = GetWindowLong(mhWndForm, -16)
lSty = lSty And Not &HC00000
SetWindowLong mhWndForm, -16, lSty
DrawMenuBar mhWndForm
End Sub
Sub Muestra()
UserForm4.Show
End Sub
⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
.
If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.
Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends