Excel - Problemas con VB en EXCEL

 
Vista:

Problemas con VB en EXCEL

Publicado por Guido (11 intervenciones) el 18/09/2006 18:28:47
Buenas con todos, tengo un par de inquietudes con respecto a Vb en excel :

La 1era es que he creado un formulario ( userform1) que sale para ingresar datos de usuario al iniciar el excel pero mi gran problema es que no puedo deshabilitar el boton cerrar del formulario ni la tecla ALT+F4 , creo q se deshabilita atraves de un codigo pero no se cual es, me podria dar la mano.

La 2da y creo debe ser la mas facil , es que quiero poner un boton en una hoja de excel que al darle click , me habra otra hoja excel pero solo con algunos datos q escoja del libro anterior

Sera muy dificil, de antemano muchas gracias

Salu2
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Abraham Valencia
Val: 313
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

RE:Problemas con VB en EXCEL

Publicado por Abraham Valencia (2415 intervenciones) el 18/09/2006 18:37:43
Mira por aqui:

http://groups.google.com/group/microsoft.public.es.excel/browse_thread/thread/de836d59c0f0e81/a2a00901c0fb11ec?lnk=gst&q=deshabilitar+f4&rnum=1#a2a00901c0fb11ec

Abraham
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con VB en EXCEL

Publicado por JuanC (792 intervenciones) el 19/09/2006 00:47:15
Para impedir cerrar desde el botón o con Alt+F4:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then Cancel = 1
End Sub

Una cosa más "complicada" y completa sería algo así:

Option Explicit

Private Declare Function apiGetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function apiSetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function apiDrawMenuBar Lib "user32" Alias "DrawMenuBar" (ByVal hWnd As Long) As Long
Private Declare Function apiFindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function apiGetSystemMenu Lib "user32" Alias "GetSystemMenu" (ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function apiModifyMenu Lib "user32" Alias "ModifyMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As Any) As Long

Private Const MF_BYCOMMAND = &H0&
Private Const MF_ENABLED = &H0&
Private Const MF_GRAYED = &H1&
Private Const SC_CLOSE = &HF060&

Private Const GWL_EXSTYLE = (-20)
Private Const GWL_STYLE As Long = (-16)

Private Const WS_EX_APPWINDOW = &H40000
Private Const WS_SYSMENU As Long = &H80000
Private Const WS_MINIMIZEBOX As Long = &H20000
Private Const WS_MAXIMIZEBOX As Long = &H10000
Private Const WS_POPUP As Long = &H80000000
Private Const WS_THICKFRAME = &H40000

Public Sub ModificarVentana(frm As Object, bMinimizar As Boolean, bMaximizar As Boolean, bCerrar As Boolean, bReDimensionable As Boolean)
Dim hWnd&, hMenu&
Dim lStyle&
On Error Resume Next
hWnd = apiFindWindow(vbNullString, frm.Caption)
If hWnd = vbNull Then Exit Sub

If Not bCerrar Then
hMenu = apiGetSystemMenu(hWnd, 0)
apiModifyMenu hMenu, SC_CLOSE, MF_BYCOMMAND Or MF_GRAYED, -10, "Close"
End If

lStyle = apiGetWindowLong(hWnd, GWL_STYLE)

lStyle = lStyle Or WS_SYSMENU
If bMinimizar Then lStyle = lStyle Or WS_MINIMIZEBOX
If bMaximizar Then lStyle = lStyle Or WS_MAXIMIZEBOX
If bReDimensionable Then lStyle = lStyle Or WS_THICKFRAME
lStyle = lStyle Or WS_POPUP

apiSetWindowLong hWnd, GWL_STYLE, (lStyle)

lStyle = apiGetWindowLong(hWnd, GWL_EXSTYLE)
lStyle = lStyle Or WS_EX_APPWINDOW

apiSetWindowLong hWnd, GWL_EXSTYLE, lStyle
apiDrawMenuBar hWnd
End Sub

Saludos desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con VB en EXCEL

Publicado por Guido Cano (11 intervenciones) el 20/09/2006 18:02:04
Gracias por el dato inserte el codigo que me distes y funciono correctamente.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con VB en EXCEL

Publicado por Guido Cano (11 intervenciones) el 20/09/2006 18:02:37
Gracias por el dato inserte el codigo que me distes y funciono correctamente.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar