Çalışma Kitabı Simge Durumunda Küçülürken Userform Ekranda Kalsın

Katılım
18 Kasım 2012
Mesajlar
423
Excel Vers. ve Dili
Microsoft Office 365
Altın Üyelik Bitiş Tarihi
04-07-2024
Herkese Merhabalar,

Kullanmış olduğum userformu simge durumunda küçültmek/ büyültmek ve tam ekran yapabilmek ve çalışma kitabına dönebilmek için aşağıdaki kodları kullanıyorum.

Ancak kullanmış olduğum çalışma sayfasını simge durmunda küçültüğümde userformda aynı şekilde simge durumunda küçülüyor.

Çalışma kitabını simge durumunda küçültüğümde userformun ekranda kalabilmesi için kodlarda nasıl bir değişikliğe gitmem gerekir? Yada nasıl bir kod eklemem gerekir.

Yardımları için şimdiden herkese çok teşekkür ederim.

Saygılarımla,



Kod:
Private Sub CommandButton1_Click()
Unload Me
ActiveCell.Show
End Sub


Kod:
Option Explicit
Public Const MinBox = &H10000
Public Const MaxBox = &H20000
Public Const Style = (-16)
Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare PtrSafe Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long

Public bekle As Boolean

Public Sub MaxMinButton(ByVal FormCaption As String)
Dim hWnd As Long
Dim lngStyle As Long

hWnd = FindWindow(vbNullString, FormCaption)
lngStyle = GetWindowLong(hWnd, Style)

lngStyle = lngStyle Or MinBox
lngStyle = lngStyle Or MaxBox

SetWindowLong hWnd, Style, lngStyle
DrawMenuBar hWnd

End Sub
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
563
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Mevcut kodlarda, CommandButton1_Click prosedürü userformu kapatıyor ve aktif hücreyi açıyor. Bu durum, çalışma kitabını simge durumuna küçültürken de userformun kapanmasına neden oluyor.

Çalışma kitabını simge durumuna küçültürken userformun ekranda kalabilmesi için CommandButton1_Click prosedüründe değişiklik yapmanız gerekiyor. Aşağıda, bu değişikliği nasıl yapabileceğinize dair iki farklı çözüm sunulmuştur:

Çözüm 1: Userformu Gizlemek
CommandButton1_Click prosedürünü şu şekilde değiştirin:

Private Sub CommandButton1_Click()
Me.Hide
End Sub

Bu değişiklik ile userform kapatılmayacak, sadece gizlenecektir. Bu sayede çalışma kitabını simge durumuna küçülttüğünüzde userform ekranda kalacaktır. Userformu tekrar göstermek için Me.Show kodunu kullanabilirsiniz.

Çözüm 2: Farklı Bir Pencere Kullanmak
1-UserForm_Initialize prosedürüne şu kodu ekleyin:
Dim frmXLMain As Object
Set frmXLMain = FindWindow("XLMAIN", Application.Caption)

2- CommandButton1_Click prosedürünü şu şekilde değiştirin:
Private Sub CommandButton1_Click()
Me.Hide
frmXLMain.WindowState = vbMinimized
End Sub

Bu değişiklik ile userform gizlenecek ve çalışma kitabı simge durumuna küçültülecektir. Userformu tekrar göstermek için Me.Show kodunu kullanabilirsiniz.
 

DoğanD

Altın Üye
Katılım
22 Eylül 2023
Mesajlar
427
Excel Vers. ve Dili
Office 365 TR
Altın Üyelik Bitiş Tarihi
05-10-2028
Merhaba,

Şöyle bir alternatif sunabilirim, Userform üzerinde bir buton yada Userform DoubleClick gibi eventlerine "Application.visible = False" kodunu ekleyerek gerektiğinde Excel uygulamasını gizleyebilirsiniz. Yine farklı bir tetikleme ile değeri True olarak değiştirip tekrar kullanabilirsiniz.

Örn;
UserformClick = Application.Visible = False
UserformDoubleClick =Application.Visible = True
 
Katılım
18 Kasım 2012
Mesajlar
423
Excel Vers. ve Dili
Microsoft Office 365
Altın Üyelik Bitiş Tarihi
04-07-2024
@DoğanD merhaba,

Yardımlarınız çok teşekkür ederim. Dosyamı paylaşsam yardımcı olma şansınız olur mu ?

Birşeyler denedim ama açıkcası sonuç alamadım.

Saygılarımla,
 

Ekli dosyalar

DoğanD

Altın Üye
Katılım
22 Eylül 2023
Mesajlar
427
Excel Vers. ve Dili
Office 365 TR
Altın Üyelik Bitiş Tarihi
05-10-2028
Merhaba,

Userform altına aşağıdaki kodları ekledim. Userform üzerinde Gri boş bir alana çift tıkladığınızda Excel gizlenir, tekrar tıkladığınızda geri gelir. Umarım işinize yarar.
Kod:
Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If Application.Visible = True Then
Application.Visible = False
Else
Application.Visible = True
End If
End Sub
 

Ekli dosyalar

Üst