Print side | Luk vindue

minimer userform

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Makro og VBA
Forum beskrivelse: Hjælp til Makroer og VBA-programmering
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=2735
Udskrevet den: 02.Maj.2024 kl. 10:29


Emne: minimer userform
Besked fra: Leonhardt
Emne: minimer userform
Posteringsdato: 26.Sep.2016 kl. 10:44
Hej
 
findes der en kode så man kan minimer en userform, og kom til excel, på samme måde som man kan med excel ark, hvis man har flere åbne
 
MVH
René


-------------
Jeg bruger 365 og 2016



Svar:
Besked fra: maxzpad
Posteringsdato: 26.Sep.2016 kl. 12:45
Hej René

Jeg kender kun til, at man kan bruge UserForm1.Hide.

Og derefter UserForm1.Show for at vise den igen.

Kan det bruges?



Mvh Max


Besked fra: Ib Hansen
Posteringsdato: 26.Sep.2016 kl. 18:42
René.

Lav først et ganske almindelig Module i VBA og døb det et eller andet, så du kan huske, hvilken kode der er i Modulet.
Jeg kaldte Modulet Minimize_UserForm.

Kopier herefter hele koden nedenunder ind i Modulet.
'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



Åben herefter den Userform du vil minimere i VBA.
Kopier denne Userform_Activate kode ind i Userformen.
Private Sub UserForm_Activate()
  AddToForm MIN_BOX
End Sub


Når Userformen åbnes vil den have minimerings-bjælken ved siden af lukke-krydset.
Og Userformen kan minimeres ned på bundlinjen.
Man kan dog ikke maximere Userformen med denne kode.

Man kan altid finde en masse på nettet med Google.
Jeg fandt koden http://www.mrexcel.com/forum/excel-questions/517745-need-minimize-button-excel-form-visual-basic-applications.html" rel="nofollow - HER  men hvis du f.eks. Googler Minimize Userform, kommer der en masse andre forslag.

Ib





-------------
Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)


Besked fra: Ib Hansen
Posteringsdato: 26.Sep.2016 kl. 19:14
Ps.

HUSK
Hvis du skal kunne redigere i dit regneark, mens Userformen er åbnen (også åbnet som minimeret), skal du indstille Userformen i dennes settings i VBA som ShowModal = False

- Klik på Userformen, så den vises i VBA.
- ShowModal finder du i settings som nr. 8-9 stykker fra neden.

Ib


-------------
Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)



Print side | Luk vindue