• DİKKAT

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

Module Kullanımı

Katılım
26 Kasım 2006
Mesajlar
234
Excel Vers. ve Dili
2010-2013 Türkçe
Module 1 deki şu koda
Kod:
Sub Kapat()
    Unload UserForm5
        If Sheets("Şifre").Range("D1") = 0 And Sheets("Şifre").Range("G1") = 0 Then
    UserForm10.Show  [COLOR="Red"]'BU KISIM NEDEN HATA VERİYOR ?[/COLOR]        ElseIf Sheets("Şifre").Range("D1") <> 0 Then
        UserForm6.Show
    ElseIf Sheets("Şifre").Range("G1") <> 0 Then
        UserForm8.Show
    


    End If
    If Sheets("Hesap Özeti").Range("e3") > Sheets("Şifre").Range("j1") Then
Sheets("Hesap Özeti").Range("e3") = Sheets("Şifre").Range("j1")

End If
If Sheets("TAHAKKUKLAR").Range("A1") > Sheets("Şifre").Range("j1") Then
Sheets("TAHAKKUKLAR").Range("A1") = Sheets("Şifre").Range("j1")

End If
If Sheets("Hesap Özeti").Range("b5") > Sheets("Şifre").Range("j1") Then
Sheets("Hesap Özeti").Range("b5") = Sheets("Şifre").Range("j1")
End If

UserForm10.Show

End Sub

Şu kodu eklemek istiyorum mümkün müdür Nasıl yapılır?
Kod:
Sub Kapat()
Unload UserForm10

    If Sheets("KONTROL").Range("C14") = 0 Then
        UserForm1.Show
    
    End If
    If Sheets("KONTROL").Range("C2") = 1 Then
    UserForm11.Show
    
    End If
    If Sheets("KONTROL").Range("C3") = 1 Then
    UserForm12.Show
    
    End If
    If Sheets("KONTROL").Range("C4") = 1 Then
    UserForm13.Show
    
    End If
    If Sheets("KONTROL").Range("C5") = 1 Then
    UserForm14.Show

    End If
    If Sheets("KONTROL").Range("C6") = 1 Then
    UserForm15.Show
    
    End If
    If Sheets("KONTROL").Range("C7") = 1 Then
    UserForm16.Show
    
    End If
    If Sheets("KONTROL").Range("C8") = 1 Then
    UserForm17.Show
    
    End If
    If Sheets("KONTROL").Range("C9") = 1 Then
    UserForm18.Show

    End If
    If Sheets("KONTROL").Range("C10") = 1 Then
    UserForm19.Show

    End If
    If Sheets("KONTROL").Range("C11") = 1 Then
    UserForm20.Show
    
    End If
    If Sheets("KONTROL").Range("C12") = 1 Then
    UserForm21.Show
    
    End If


    If Sheets("KONTROL").Range("C13") = 1 Then
    UserForm22.Show
End If
End Sub
 
Son düzenleme:
Merhaba,

İki kod bloğu birleştirilebilir. Fakat öncelik hangi kod bloğunda olacak belirtmemişsiniz. Ayrıca kod ile ekrandaki formları "unload" yapıyorsunuz bundaki önceliklerde önemlidir. Kısaca daha fazla detay vermeniz gerekiyor.
 
Merhaba,

İki kod bloğu birleştirilebilir. Fakat öncelik hangi kod bloğunda olacak belirtmemişsiniz. Ayrıca kod ile ekrandaki formları "unload" yapıyorsunuz bundaki önceliklerde önemlidir. Kısaca daha fazla detay vermeniz gerekiyor.

Öncelikli olan en üste yazdığım kod (Userform5'in kapatılması) o kontrolleri bitirince Userform10 kontrollere başlasın istiyorum kontroller sonrasında eğer Userform 11,12,13,14,..... (1 ve 0 lara bakarak) çalıştırılması gerekiyorsa çalıştırsın gerekmiyorsa Userform1 çalıştırılsın istiyorum.

Kodları buna göre tasarladım ama birleştiremedim. Doğrumu oldu yanlışmı oldu anlayamıyorum o yüzden.

Kodun içersinde Kırmızı renkde işaretlediğim kısım (Userform10.Show) neden hata veriyor anlayamadım. Kodların birleştirilmiş hali aşağıda.
Kod:
Sub Kapat()
 
    Unload UserForm5
        If Sheets("Şifre").Range("D1") = 0 And Sheets("Şifre").Range("G1") = 0 Then
    UserForm10.Show [COLOR="Red"]'BU KISIM NEDEN HATA VERİYOR[/COLOR]
        ElseIf Sheets("Şifre").Range("D1") <> 0 Then
        UserForm6.Show
    ElseIf Sheets("Şifre").Range("G1") <> 0 Then
        UserForm8.Show
    


    End If
    If Sheets("Hesap Özeti").Range("e3") > Sheets("Şifre").Range("j1") Then
Sheets("Hesap Özeti").Range("e3") = Sheets("Şifre").Range("j1")

End If
If Sheets("TAHAKKUKLAR").Range("A1") > Sheets("Şifre").Range("j1") Then
Sheets("TAHAKKUKLAR").Range("A1") = Sheets("Şifre").Range("j1")

End If
If Sheets("Hesap Özeti").Range("b5") > Sheets("Şifre").Range("j1") Then
Sheets("Hesap Özeti").Range("b5") = Sheets("Şifre").Range("j1")


UserForm10.Show 

End If
Unload UserForm10

    If Sheets("KONTROL").Range("C14") = 0 Then
        UserForm1.Show
    
    End If
    If Sheets("KONTROL").Range("C2") = 1 Then
    UserForm11.Show
    
    End If
    If Sheets("KONTROL").Range("C3") = 1 Then
    UserForm12.Show
    
    End If
    If Sheets("KONTROL").Range("C4") = 1 Then
    UserForm13.Show
    
    End If
    If Sheets("KONTROL").Range("C5") = 1 Then
    UserForm14.Show

    End If
    If Sheets("KONTROL").Range("C6") = 1 Then
    UserForm15.Show
    
    End If
    If Sheets("KONTROL").Range("C7") = 1 Then
    UserForm16.Show
    
    End If
    If Sheets("KONTROL").Range("C8") = 1 Then
    UserForm17.Show
    
    End If
    If Sheets("KONTROL").Range("C9") = 1 Then
    UserForm18.Show

    End If
    If Sheets("KONTROL").Range("C10") = 1 Then
    UserForm19.Show

    End If
    If Sheets("KONTROL").Range("C11") = 1 Then
    UserForm20.Show
    
    End If
    If Sheets("KONTROL").Range("C12") = 1 Then
    UserForm21.Show
    
    End If

    If Sheets("KONTROL").Range("C13") = 1 Then
    UserForm22.Show

End If
End Sub
 
Merhaba,

Dosyanızı açtınız.
Logolu formunuz ekrana geldi.
5 saniye sonra kapat makrosu devreye girdiğinde hangi koşula göre hangi işlemin yapılacağını yazar mısınız?
 
Merhaba,

Dosyanızı açtınız.
Logolu formunuz ekrana geldi.
5 saniye sonra kapat makrosu devreye girdiğinde hangi koşula göre hangi işlemin yapılacağını yazar mısınız?

Kod:
Unload UserForm5
        If Sheets("Şifre").Range("D1") = 0 And Sheets("Şifre").Range("G1") = 0 Then
    UserForm10.Show
        ElseIf Sheets("Şifre").Range("D1") <> 0 Then
        UserForm6.Show
    ElseIf Sheets("Şifre").Range("G1") <> 0 Then
        UserForm8.Show

Bu sorgulamayı yapacak Eğer D1") = 0 ve G1") = 0 sa User form 10 çalışacak.
 
Merhaba,

Ben denediğimde UserForm10 açılıyor.
 
Kod:
Unload UserForm5
        If Sheets("Şifre").Range("D1") = 0 And Sheets("Şifre").Range("G1") = 0 Then 'Şifreleme ve Devir Sorgusu
    UserForm10.Show
        ElseIf Sheets("Şifre").Range("D1") <> 0 Then 'Şifreleme Güvenlik
        UserForm6.Show
    ElseIf Sheets("Şifre").Range("G1") <> 0 Then 'Devir işlemi sorgusu
        UserForm8.Show

Bu sorgulamayı yapacak Eğer D1") = 0 ve G1") = 0 sa User form 10 çalışacak.

Yalnız Userform10 u çalıştırmayı istememin asıl sebebi sonrasındaki Ocak.Şubat.Mart.... Yani Userform 11,12,13,14 ....22 formlarının çalıştırmak

Bu formların çalışması ile ilgili koşulda kontrol sayfasının "C" sutununda olacak

açılıştan itibaren sırayla yazıyorum

1-Userform5 çalışsın ve otomatik kapansın
Kod:
Application.OnTime Now + TimeSerial(0, 0, 5), "Kapat"

2-Userform5 kapanırken Module1 aşağıdaki kodlara baksın
Kod:
Unload UserForm5
        If Sheets("Şifre").Range("D1") = 0 And Sheets("Şifre").Range("G1") = 0 Then
    UserForm10.Show [COLOR="Red"]'(Bu kısım indirdiğiniz dosyada  UserForm1.Show)[/COLOR]
        ElseIf Sheets("Şifre").Range("D1") <> 0 Then
        UserForm6.Show
    ElseIf Sheets("Şifre").Range("G1") <> 0 Then
        UserForm8.Show
3- Eğer aşağıdaki koşul sağlanıyorsa Userform1 çalışsın
Kod:
If Sheets("KONTROL").Range("C14") = 0 Then
        UserForm1.Show
Bunun anlamı Şifreler doğru,Devir işlemi yapılmayacak,Tahakkuk edecek ay yok program normal seyrinde çalışsındır.

4-3 nolu koşul sağlanmıyorsa (yani tahakkuk etmesi gerek ay varsa o aya ait form açılsın
Kod:
End If
    If Sheets("KONTROL").Range("C2") = 1 Then
    UserForm11.Show
    
    End If
    If Sheets("KONTROL").Range("C3") = 1 Then
    UserForm12.Show
    
    End If
    If Sheets("KONTROL").Range("C4") = 1 Then
    UserForm13.Show
    
    End If
    If Sheets("KONTROL").Range("C5") = 1 Then
    UserForm14.Show

    End If
    If Sheets("KONTROL").Range("C6") = 1 Then
    UserForm15.Show
    
    End If
    If Sheets("KONTROL").Range("C7") = 1 Then
    UserForm16.Show
    
    End If
    If Sheets("KONTROL").Range("C8") = 1 Then
    UserForm17.Show
    
    End If
    If Sheets("KONTROL").Range("C9") = 1 Then
    UserForm18.Show

    End If
    If Sheets("KONTROL").Range("C10") = 1 Then
    UserForm19.Show

    End If
    If Sheets("KONTROL").Range("C11") = 1 Then
    UserForm20.Show
    
    End If
    If Sheets("KONTROL").Range("C12") = 1 Then
    UserForm21.Show
    
    End If

    If Sheets("KONTROL").Range("C13") = 1 Then
    UserForm22.Show

buradaki 11 den 22 ye kadar olan formların aktar butonuna bir sonraki ayı kontrol edecek şu kodu yazdım
Kod:
Sheets("KONTROL").Range("D2") = 0
Me.Hide
UserForm10.Show
 
Merhaba,

Ben size kurmanız gereken kod bloğunu bir örnekle yazıyım. Siz kendi sorgularınıza göre uyarlarsınız.

Kod:
Unload UserForm5
 
If İlgili Hücre1 = 0 And İlgili Hücre2 = 0 Then
UserForm10.Show
ElseIf İlgili Hücre3 = 1 Then
UserForm1.Show
[COLOR=red]ElseIf İlgili Hücre4 = 1 Then[/COLOR]
[COLOR=red]UserForm2.Show[/COLOR]
.....

Kırmızı renkli "ElseIf" bloğunu çoğaltarak istediğiniz kadar sorgu ekleyebilirsiniz. Form ve hücre isimlerini kendinize göre değiştiriniz.
 
Merhaba,

Ben size kurmanız gereken kod bloğunu bir örnekle yazıyım. Siz kendi sorgularınıza göre uyarlarsınız.

Kod:
Unload UserForm5
 
If İlgili Hücre1 = 0 And İlgili Hücre2 = 0 Then
UserForm10.Show
ElseIf İlgili Hücre3 = 1 Then
UserForm1.Show
[COLOR=red]ElseIf İlgili Hücre4 = 1 Then[/COLOR]
[COLOR=red]UserForm2.Show[/COLOR]
.....

Kırmızı renkli "ElseIf" bloğunu çoğaltarak istediğiniz kadar sorgu ekleyebilirsiniz. Form ve hücre isimlerini kendinize göre değiştiriniz.

Tamam verdiğiniz örneğe göre kodları revize edeceğim ama bir sorum olacak.

11,12,13,14....22 ye kadar olan formlar kapanınca ardışık olarak bir sonraki forma geçip geçmeyeceğini de sorgulaması lazım Örneğin Userform11, OCAK ayını temsil ediyorsa ve koşulu sağladığı için açılmışsa, kod aktar butonuyla görev yapması sonrasında ŞUBAT ayının formunu açmadan önce "KONTROL" sayfasına bakıp sonraki ayların tahakkuka ihtiyacı olup olmadığını sorgulaması gerekir.

Ben bu durum için Her ayın aktar butonuna, işlemi başa almak amacıyla Userform10 formuna dönmesini ve aynı sorguların tekrar yapılması olayını düşündüm ama yapamadım Başka bir kurgulama yapılabilirmi acaba bu amaç doğrultusunda.
 
Siz verdiğim örneğe göre "Kapat" makrosunu düzenleyin.

Daha sonra her aya ait aktar butonunuzdaki kodun içine bir sonraki aya ait hücre sorgusuna geçebilmesi için kendi ayına ait hücre bilgisini değiştirecek bir kod satırı ekleyin.

Örnek;

"UserForm11" Ocak ayı ise ve bu formun açılması için sorgulanması gereken hücre "Sheets("KONTROL").Range("C2") = 1" satırı ise siz bu forma ait aktar butonuna ait kodun bitimine "Sheets("KONTROL").Range("C2") = 1" ifadesindeki 1 değerini değiştirecek bir satır ekleyin.

Daha sonra aynı formun "QueryClose" olayına aşağıdaki kodu uygulayın.

Kod:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Kapat
End Sub

Son olarak "UserForm10" a dönmek için eklediğiniz satırları silin.

Bu şekilde ilgili form kapanırken "Kapat" makrosunu tetikleyecek ve sizin bir sonraki koşulunuza gelene kadar diğer aylara ait formlarınız açılmayacak.

Eğer bu şekilde sonuç alamazsanız. Aylara ait formların "QueryClose" olayına bir sonraki ayı açacak sorguyu ve kodu ekleyin.
 
Siz verdiğim örneğe göre "Kapat" makrosunu düzenleyin.

Daha sonra her aya ait aktar butonunuzdaki kodun içine bir sonraki aya ait hücre sorgusuna geçebilmesi için kendi ayına ait hücre bilgisini değiştirecek bir kod satırı ekleyin.

Örnek;

"UserForm11" Ocak ayı ise ve bu formun açılması için sorgulanması gereken hücre "Sheets("KONTROL").Range("C2") = 1" satırı ise siz bu forma ait aktar butonuna ait kodun bitimine "Sheets("KONTROL").Range("C2") = 1" ifadesindeki 1 değerini değiştirecek bir satır ekleyin

Daha sonra aynı formun "QueryClose" olayına aşağıdaki kodu uygulayın.

Kod:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Kapat
End Sub

Son olarak "UserForm10" a dönmek için eklediğiniz satırları silin.

Bu şekilde ilgili form kapanırken "Kapat" makrosunu tetikleyecek ve sizin bir sonraki koşulunuza gelene kadar diğer aylara ait formlarınız açılmayacak.

Eğer bu şekilde sonuç alamazsanız. Aylara ait formların "QueryClose" olayına bir sonraki açacak sorguyu ve kodu ekleyin.

Kısa süre içinde Cevap alamıyor ya da Sonuca ulaşamıyorsak "Soruyu doğru soramıyoruzdur." örneğini bir kez daha yaşadık. Sayenizde Bir sorun daha çözüldü. İlginiz ve Fikriniz için çok Teşekkür ederim.

Dip not: Tahakkuklara ilişkin kodları Module değilde Userform10 Activate olayına yazdım.

Şu Önerinize aynen uydum....
Daha sonra her aya ait aktar butonunuzdaki kodun içine bir sonraki aya ait hücre sorgusuna geçebilmesi için kendi ayına ait hücre bilgisini değiştirecek bir kod satırı ekleyin.
 
Geri
Üst