• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

UserForm

  • Konbuyu başlatan Konbuyu başlatan okavut
  • Başlangıç tarihi Başlangıç tarihi

okavut

Altın Üye
Katılım
22 Şubat 2007
Mesajlar
173
Excel Vers. ve Dili
excel 2016 TR
Hazırlamaya çalıştığım userformda;

Seçilen ComboBax dan ilgili sayfaya gidilecek (Örnek Olarak Planlama İşleri seçilince veri sayfasından B2:B100 aralığında seçilen iş isminin yanında bulunan a2:a100 aralığında bulunan sayfaya gidilecek. Büyük Su İşleri seçilince F2:F100 aralığında seçilen iş isminin yanında bulunan a2:a100 aralığında bulunan sayfaya gidilecek)

Ana sayfa olarak gelecek olan Userform ekranı kaplaması gerekiyor, (farklı ekran tiplerinde kullanılacaktır).

Saygılarımla.
 

Ekli dosyalar

Userformu tamekran açmak için :

Doğru hatırlıyorsam sayın Haluk'un kodları ile userformun initialize olayında :

Dim X1 As Long, Y1 As Long, Y2 As Long, X2 As Long
Dim CX As Double, CY As Double
Dim MyCtrl As Control
X1 = Application.Width
Y1 = Application.Height
X2 = Me.Width
Y2 = Me.Height
CX = X1 / X2
CY = Y1 / Y2
Me.Width = X1
Me.Height = Y1
For Each MyCtrl In Me.Controls
MyCtrl.Top = MyCtrl.Top * CY
MyCtrl.Left = MyCtrl.Left * CX
MyCtrl.Width = MyCtrl.Width * CX
MyCtrl.Height = MyCtrl.Height * CY
On Error Resume Next
'MyCtrl.Font.Size = MyCtrl.Font.Size * CY
On Error GoTo 0
Next

Bu şekilde , ekran farkı olmaksızın her tipinde tamekran açılacaktır. Yine de kenarlardan ekran görünsün derseniz, boş bir excel açın ve kenarlardan istediğiniz kadar daraltın ve kapatın. Sonra bu dosyayı açın. Alttaki excel önceki ayarda açılır, userform da aynı ölçüde üstüne açılır. Yani , tamekran olan excelin kendisi olmalıdır veya ufaltılmalıdır. Userform ekrana değil , her zaman excele tamekran olur. Diğer anlamda , userform tamekran açılmadığında aslında excel tamekran değildir.

Combolara ikili sütun değeri almak için , hâlâ initialize içinde :

Sheets("VERİ").Activate

ComboBox1.ColumnCount = 2
ComboBox1.ColumnWidths = "40;120"
ComboBox1.RowSource = "VERİ!A2:B" & Sheets("VERİ").Range("A65536").End(xlUp).Row

ComboBox2.ColumnCount = 2
ComboBox2.ColumnWidths = "40;120"
ComboBox2.RowSource = "VERİ!c2:d" & Sheets("VERİ").Range("c65536").End(xlUp).Row
'.
'. " siz diğerlerine devam edin , userformda gereken yonlendirmeyi yazdım. Sütuna alttan üste baktıkları için istediğiniz kadar satırı veri sütunlarına ekleyebilirsiniz , görecektir...
'.

Comboda seçtiğiniz sayfaya gitmek için, comboboxa çift tıklayıp açılan olayında :

Private Sub ComboBox1_Change()
Sheets(ComboBox1.Value).Select
MsgBox "Listede seçilen sayfa açıldı"
Unload userform1
End Sub

Private Sub ComboBox2_Change()
Sheets(ComboBox2.Value).Select
MsgBox "Listede seçilen sayfa açıldı"
Unload userform1
End Sub

Son olarak vba kısmında tasarımdaki combolara tek tıklayın, solda properties de sütun başlıklarını yerleştirin. Nasıl olacağı kodların altında not olarak bırakıldı. Yani her combo için 4 işiniz var. Bu arada P5 gibi olmayan sayfalarınız var , buna dikkat edin .

Bunlar örnek olarak userform içinde yapıldı , cursor'un sıralı hareketi için tasarımda userforma sağ tıklandı ve tab order seçilerek araçlar mantıklı sıraya sokuldu. Siz kalanları bunlardan örnekleyerek devam edebilirsiniz.
 

Ekli dosyalar

Son düzenleme:
Sayın Cems öncelikle çok teşekkür ederin. Emeğinize ve elinize sağlık.

Ustat ben durumu ifade edemedim kusura bakma, benim isteğim sayfa seçilince o sayfanın aktif olması idi. Örnek olarak planlamada iş seçilince USerForm kapanacak seçilen sayfa açılacak

Saygılarımla
 
Alttaki kod blokunda koyu olarak Combo kodlarına sayfa seçilince userformu kapatan ek satırı yazdım , zamansızlık nedeni ile örneği değiştirmedim . Siz lütfen ekleyerek devam edin..
 
Sayın Cems

Teşekkürler
 
Geri
Üst