vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest wtorek, 14 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Maximalize, minimalize UserForm dla Excela


otwartyotwarty rozpoczął: Gossard postów: 8



napisał: Rycho
postów: 291


umieszczony:
27 września 2005
01:45

  
Ups. Errata :(
Oczywiście ostatne wywołanie metody "show" też nie powinno byc "gołe" lecz:
.Show vbModeless

pozdrawiam
Rycho
napisał: Rycho
postów: 291


umieszczony:
27 września 2005
01:36

  
Witam.
Ponieważ także uczę się excela, trafiłem na to forum za Stanisławem - pozdrawiam :)
Próbowalem przeanalizować to co Stanisław podał ale nie zdzierżyłem :(

Moja propozycja jest wymyślona w trakcie czytania tego wątku i nie sprawdzona lecz bardzo prosta a może wystarczy.
Od excela 2000 userform może być oknem niemodalnym - obsługa okna nie musi się zakończyć, by wrócić do operacji na arkuszu.
Przycisk umieszczony np. w lewym górnym rogu formy steruje zmniejszaniem i przenoszeniem okna do lewego górnego rogu okna excela. Oto cały kod:
-w module standardowym
Sub PokażForm()
UserForm1.Show vbModeless
End Sub

-module userform osadziłem przycisk "cmbMIn" i wpisałem kod:
Private Sub cmbMin_Click()
If cmbMin.Caption = "Min" Then
cmbMin.Caption = "Max"
With Me
.StartUpPosition = 0
.Height = 53
.Width = 20
.Left = 0
.Top = 0
.Repaint
End With
Else
cmbMin.Caption = "Min"
With Me
.StartUpPosition = 1
.Height = 109
.Width = 268
.Hide
.Show
End With
End If
End Sub
napisał: Gossard
postów: 13


umieszczony:
26 września 2005
14:53

  
Witam!!!

Kodzik jest spoko, działa (prawie) tak jak chciałem! A czy coś w temacie maximalizacji forma?

Próbowałem na podstawie poniższego pliku cos dostosowywać, ale chyba jestem za zielony... Niestety samemu nic mi nie wychodzi...
napisał: Gossard
postów: 13


umieszczony:
23 września 2005
14:46

  
Dziękuje Stanisławie!
Juz drukuję, drukuję ibiore się do analizowania poniższego kodu!
Pozdrawiam...:D
napisał: Stanislaw
postów: 109


umieszczony:
22 września 2005
21:23

  
Cytat:

> ale niestety jest to dla mnie zbyt trudne

Dla mnie też,
ale znalazłem kod przystosowany przez pxd74.

Udostępniony jest przycisk "Minimalizuj" i "przywrócenie...".

Kod należy wkleić w module formularza.
'Deklaracje API
Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" _
    (ByVal lpClassName As String, _
     ByVal lpWindowName As String) _
     As Long

Private Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" _
    (ByVal hWnd As Long, _
     ByVal nIndex As Long) _
     As Long

Private Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" _
    (ByVal hWnd As Long, _
     ByVal nIndex As Long, _
     ByVal dwNewLong As Long) _
     As Long

Private Declare Function DrawMenuBar Lib "user32" _
    (ByVal hWnd As Long) _
    As Long

Private Const GWL_STYLE As Long = (-16)
Private Const WS_MINIMIZEBOX As Long = &H20000

Private Sub UserForm_Activate()

Dim iStyle As Long
Dim hWndForm As Long


hWndForm = FindWindow(vbNullString, Me.Caption)

iStyle = GetWindowLong(hWndForm, GWL_STYLE)
iStyle = iStyle Or WS_MINIMIZEBOX

SetWindowLong hWndForm, GWL_STYLE, iStyle
DrawMenuBar hWndForm

End Sub


--
Pozdrawiam
Stanislaw
napisał: Gossard
postów: 13


umieszczony:
22 września 2005
12:53

  
Witam!!!
Właśnie na podstawie tego pliku próbowałem poznac zasadę działania tego problemu... ale niestety jest to dla mnie zbyt trudne. Potrzebuję kod, który działałby od momentu pojawienia sie forma, aż do jego zniknięcia. Czy byłbys w stanie mi pomóc?
napisał: Stanislaw
postów: 109


umieszczony:
22 września 2005
12:35

  
Witaj,

Da się zrobić - możesz zobaczyć jak to zrobione na stronie:
http://www.bmsltd.ie/Excel/Default.htm

=> ściągnij plik "FormFun.zip" - pozostaje dostosowanie kodu.


Ale odnośnie tego co piszesz - tak się zastanawiam -
może wygodne byłoby ukrywanie/odkrywanie formularza
za pomocą skrótów klawiszowych z podpiętymi do nich
odpowiednimi makrami.

--
Powodzenia
Stanislaw
napisał: Gossard
postów: 13


umieszczony:
22 września 2005
10:12

  
Witam!!!
Na początek, parę słów wprowadzenia. Mam forma, który pobiera dane od użytkownika i po zatwierdzeniu, wprowadza je do odpowiednik komórek w tabeli Excela. Ale stwierdziłem iż musi on miec obcje minimalizacji i maximalizacji... tak jak standardowe okno Windows. Te opcje mają być dostępne przez cały czas "widoczności" forma na ekranie...
I mam problem..., za skarby nic nie mogę zrobić. Jeżeli ktos jest w stanie mi pomóc, byłbym wdzięczny!


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z