Notifications
Clear all

Como colocar botão de minimizar na userform

10 Posts
2 Usuários
0 Reactions
1,961 Visualizações
(@alevba)
Posts: 0
New Member
Topic starter
 

Tenho uma planilha e fiz uma userforme e gostaria de minimizar ela quando não estou utilizando, Alguém pode me ajudar?

 
Postado : 19/02/2015 9:35 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!

Xará, use a pesquisa do fórum!!
http://www.google.com.br/cse?cx=partner ... gsc.page=1

Att

 
Postado : 19/02/2015 9:42 am
(@alevba)
Posts: 0
New Member
Topic starter
 

bom dia!
cara, a primeira vez que eu to nesse fórum, é tudo novo tenho que aprender ainda como é mas olhei na pesquisa e não achei tem uns códigos lá mas é para minimizar planilhas, eu queria um codigo para minimizar userform, você sabe?

 
Postado : 19/02/2015 9:58 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Você pode adaptar uma gambiarra

Me.Hide
Application.WindowState = xlMinimized

Ou...
Criado por:Leith Ross

'Written: October 07, 2007
'Author:  Leith Ross
'Summary: Add Minimize, and Maximize/Restore buttons to a VBA UserForm

Private Const GWL_STYLE As Long = -16
Public Const MIN_BOX As Long = &H20000
Public Const MAX_BOX As Long = &H10000

Const SC_CLOSE As Long = &HF060
Const SC_MAXIMIZE As Long = &HF030
Const SC_MINIMIZE As Long = &HF020
Const SC_RESTORE As Long = &HF120

 Private Declare Function GetWindowLong _
   Lib "user32.dll" _
    Alias "GetWindowLongA" _
     (ByVal hwnd As Long, _
      ByVal nIndex As Long) As Long
               
 Private Declare Function SetWindowLong _
  Lib "user32.dll" _
   Alias "SetWindowLongA" _
    (ByVal hwnd As Long, _
     ByVal nIndex As Long, _
     ByVal dwNewLong As Long) As Long
     
'Redraw the Icons on the Window's Title Bar
 Private Declare Function DrawMenuBar _
  Lib "user32.dll" _
   (ByVal hwnd As Long) As Long

'Returns the Window Handle of the Window accepting input
 Private Declare Function GetForegroundWindow _
  Lib "user32.dll" () As Long

Public Sub AddToForm(ByVal Box_Type As Long)

 Dim BitMask As Long
 Dim Window_Handle As Long
 Dim WindowStyle As Long
 Dim Ret As Long

   If Box_Type = MIN_BOX Or Box_Type = MAX_BOX Then
      Window_Handle = GetForegroundWindow()
  
       WindowStyle = GetWindowLong(Window_Handle, GWL_STYLE)
       BitMask = WindowStyle Or Box_Type
  
      Ret = SetWindowLong(Window_Handle, GWL_STYLE, BitMask)
      Ret = DrawMenuBar(Window_Handle)
   End If

End Sub
Private Sub UserForm_Activate()
  AddToForm MIN_BOX
End sub

http://www.cpearson.com/excel/formcontrol.aspx

Att

 
Postado : 19/02/2015 10:39 am
(@alevba)
Posts: 0
New Member
Topic starter
 

tenho uma duvida, eu tenho que inserir um modulo e depois colocar o código na useform ?

 
Postado : 19/02/2015 11:35 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Somente essa parte fica dentro do Userform

Private Sub UserForm_Activate()
  AddToForm MIN_BOX
End sub

O restante ficará dentro de um módulo comum.

Att

 
Postado : 19/02/2015 12:11 pm
(@alevba)
Posts: 0
New Member
Topic starter
 

Deu tudo certo mas quando mudo o nome da userform não da certo da erro
Tenho uma duvida se eu tiver duas userform na mesma planilha e quiser colocar o botão de minimizar, como eu faço?

 
Postado : 19/02/2015 2:27 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!!

Em qualquer linguagem de programação inclusive a VBA, você tem por obrigação referenciar os objetos!!!

Diga ao código quais os formulário que vc tem e não haverá erro!
Para mais leia:
http://www.bertolo.pro.br/FinEst/Semana ... oExcel.pdf

Página: 12

Att

 
Postado : 19/02/2015 2:35 pm
(@alevba)
Posts: 0
New Member
Topic starter
 

Pocha cara, obrigado pela sua atenção, você é muito bom, vou dar uma lida!

 
Postado : 19/02/2015 2:39 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Movi teu tópico para Macros & VBA, que é o assunto da tua dúvida, pois você havia postado onde não é permitido postar dúvidas, pois é exclusivo para a apresentação dos novos usuários do fórum.

Na próxima vez poste no local correto, e se não souber onde, poste em Excel - O básico, que depois eu movo para o local correto.

[]s

Patropi - Moderador

 
Postado : 19/02/2015 5:21 pm