Userform Maximize Button ile Kod Çalıştırma

Katılım
9 Ocak 2009
Mesajlar
557
Excel Vers. ve Dili
2002 TÜRKÇE
2007 TÜRKÇE
2010 TÜRKÇE
2019 TÜRKÇE
'_____Forma minimise and maximise button eklemek_____
lngCurrentStyle = GetWindowLong(lngHwnd, -16)
lngNewStyle = lngCurrentStyle Or 131072 Or 65536
lngNewStyle = lngNewStyle And Not 268435456 And Not &H80000000
SetWindowLong lngHwnd, -16, lngNewStyle

Merhabalar;
Yukarıda kod ile userforma küçültme ve büyültme tuşları ekledim. Fakat mesela büyültme tuşuna basınca kod çalışmasını nasıl sağlayabilirim.
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
559
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Sizin verdiğiniz kod userforma küçültme ve büyültme tuşları eklemenizi sağlar.Userformun pencere stilini değiştirerek bu işlemi gerçekleştirir.

Kod:
Private Sub Button1_Click()   
    If SendMessage(Me.hwnd, WM_NCLBUTTONDOWN, HTMAXBUTTON, 0) Then       
        Me.Width = Me.Width * 2
        Me.Height = Me.Height * 2
    End If
End Sub
Bu kod ile büyültme tuşuna basıldığında userformun iki katına çıkmasını görürsünüz.
 
Katılım
9 Ocak 2009
Mesajlar
557
Excel Vers. ve Dili
2002 TÜRKÇE
2007 TÜRKÇE
2010 TÜRKÇE
2019 TÜRKÇE
Evet biliyorum.Benim istediğim iki ekran çalışıyorum.Hangi ekranda userformu açarsam üzerindeki nesneler uygun bir şekilde tam ekran açılıyor sıkıntı yok.Fakat Userformu diğer ekrana alıp büyültme tuşuna bastığımda tam ekran yaptığımda nesneler ilk açıldığı gibi kalıyor küçük yada büyük ekrana göre onu düzenleyemediğim için büyültme tuşuna kod atayarak yapmak geldi aklıma.Bu yüzden büyültme tuşuna kod atayabilir miyiz diye sordum.
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
559
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Kod:
Örnek-1

Option Explicit

Private Sub Button1_Click()
    ' Userformu diğer ekrana taşı
    Me.Left = Screen.FromPoint(Cursor.Position).Bounds.Left
    Me.Top = Screen.FromPoint(Cursor.Position).Bounds.Top   
 
    If Me.ScaleMode = fmScaleNone Then
        Me.ScaleMode = fmScaleToScreen
        Me.Caption = "Büyütülmüş"
    Else
        Me.ScaleMode = fmScaleNone
        Me.Caption =
    End If
End Sub

Private Sub UserForm_Resize()
  
    For Each ctrl As Control In Me.Controls
        ctrl.Width = ctrl.Width * Me.ScaleWidth
        ctrl.Height = ctrl.Height * Me.ScaleHeight
    Next ctrl
End Sub

Haklısınız, Visual Basic formlarında varsayılan olarak bir büyütme düğmesi bulunmaz. Büyütme düğmesi eklemek için aşağıdaki adımları izleyebilirsiniz:

1. Toolbox'ı Açma: Visual Basic formunuzda View menüsünden Toolbox seçeneğini seçin.
2. Button Kontrolünü Ekleme:Toolbox'ta Button kontrolünü bulun ve formunuza sürükleyip bırakın.
3. Button Özelliklerini Ayarlama:
  • Button'ın Name özelliğini Button1 olarak değiştirin.
  • Button'ın Text özelliğini Büyüt olarak değiştirin.
4. Kod Ekleme: Button1'ın Click event prosedürüne Örnek-2 kodunu ekleyin.
5. UserForm_Resize Event Prosedürü: UserForm'un UserForm_Resize event prosedürüne Örnek-1 kodunu ekleyin.
6. Formu Çalıştırma:Formu çalıştırın ve Büyüt düğmesine tıklayın. Form, ekranın boyutuna göre otomatik olarak büyütülecektir.

Not: Bu kod, Windows Forms ile çalışır.
Kod, userformunuzun tasarım modunda olması gerekir.
Kod, userformunuzun FormBorderStyle özelliğinin Sizable veya FixedDialog olarak ayarlanmasını gerektirir.

 
Son düzenleme:
Katılım
9 Ocak 2009
Mesajlar
557
Excel Vers. ve Dili
2002 TÜRKÇE
2007 TÜRKÇE
2010 TÜRKÇE
2019 TÜRKÇE
  1. Bu kodu userformunuzdaki büyütme düğmesine çift tıklayarak ekleyin.
Hocam visual basic formun büyütme düğmesi yokki nasıl tıklayarak ekleyeceğiz.
 
Katılım
9 Ocak 2009
Mesajlar
557
Excel Vers. ve Dili
2002 TÜRKÇE
2007 TÜRKÇE
2010 TÜRKÇE
2019 TÜRKÇE
Private Sub UserForm_Resize()

For Each ctrl As Control In Me.Controls
ctrl.Width = ctrl.Width * Me.ScaleWidth
ctrl.Height = ctrl.Height * Me.ScaleHeight
Next ctrl
End Sub

.ScaleWidth hata verdi hocam

userformunuzun FormBorderStyle özelliğinin Sizable veya FixedDialog olarak ayarlanmasını gerektirir.

bende çıkan 0-fmBorderStyleNone ve 1-fmBorderStyleSingle çenekleri var
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
559
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Hata, userformunuzun FormBorderStyle özelliğinin fmBorderStyleNone olarak ayarlanmasından kaynaklanıyor. Bu özelliği Sizable veya FixedDialog olarak değiştirirseniz, .ScaleWidth ve .ScaleHeight özelliklerini sorunsuz bir şekilde kullanabilirsiniz.

fmBorderStyleNone seçeneği, userformunuzun boyutlandırılamaz hale gelmesine neden olur.
fmBorderStyleSingle seçeneği, userformunuzun yalnızca kenarlarından boyutlandırılabilmesine izin verir.
Sizable seçeneği, userformunuzun kenarlarından ve köşelerinden boyutlandırılabilmesine izin verir.

Çözüm:
  1. Userformunuzu tasarım modunda açın.
  2. Özellikler penceresini açmak için F4 tuşuna basın.
  3. FormBorderStyle özelliğini Sizable veya FixedDialog olarak ayarlayın.
  4. Userformunuzu kaydedin ve tekrar çalıştırın.

Özetle:
  1. Userformunuzun FormBorderStyle özelliğini Sizable veya FixedDialog olarak ayarlayın.
  2. Userformunuzu kaydedin ve tekrar çalıştırın.Kod çalışacaktır.
 
Katılım
9 Ocak 2009
Mesajlar
557
Excel Vers. ve Dili
2002 TÜRKÇE
2007 TÜRKÇE
2010 TÜRKÇE
2019 TÜRKÇE
Hocam bende çıkan 0-fmBorderStyleNone ve 1-fmBorderStyleSingle çenekleri var bu
  1. Userformunuzun FormBorderStyle özelliğini Sizable veya FixedDialog olarak ayarlayın.
bende gözükmüyor ve yok bunu ayarlayamıyorum excel vba da böyle bir seçenek yok
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Hocam bende çıkan 0-fmBorderStyleNone ve 1-fmBorderStyleSingle çenekleri var bu
  1. Userformunuzun FormBorderStyle özelliğini Sizable veya FixedDialog olarak ayarlayın.
bende gözükmüyor ve yok bunu ayarlayamıyorum excel vba da böyle bir seçenek yok

.....
Not: Bu kod, Windows Forms ile çalışır.
Kod, userformunuzun tasarım modunda olması gerekir.
Kod, userformunuzun FormBorderStyle özelliğinin Sizable veya FixedDialog olarak ayarlanmasını gerektirir.

Yukarıdaki alıntıda belirtildiği gibi , bu işler VBA için değil, Visual Basic için geçerli...... Soruyu cevaplamaya çalışan üyemiz, cevabı ChatGPT gibi bir yapay zeka yazılımından yararlandığı için sizin işinize yaramaması normal.

.
 
Katılım
9 Ocak 2009
Mesajlar
557
Excel Vers. ve Dili
2002 TÜRKÇE
2007 TÜRKÇE
2010 TÜRKÇE
2019 TÜRKÇE
peki napabilirim
 
Üst