• DİKKAT

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

Otomatik 2 adet UserForm Açılışı

nihatkr

Altın Üye
Altın Üye
Katılım
25 Ağustos 2006
Mesajlar
530
Excel Vers. ve Dili
2016 Türkçe
Ofis 365
Arkadaşlar kullandığım nakit akış tablosunda muhtelif usfer formlar kullanıyorum (uyarı penceresi olarak)

ancak bazı durumlar varki koşula bağlı olarak form açıldığında aynı anda 2-3 userform (uyarı penceresi) açılması gerekiyor. Ancak aşağıdaki kodları modüle eklediğimde hata veriyor. Tek tek kulandığımda ise sorunsuz ikiside çalışıyor.

İstediğim şu. Dosya açılışında userformların otomatik açılmasını istiyorum.
UserForm1 her açılışta zaten geliyor. Gelmeside gerekiyor.
User form2 ise belirlediğim koşul gerçekleştiğinde otomatik olarak gelmesi gerekecek. ancak ikisi birden olunca çalışmıyor.

Yardımlarınız için teşekkürler.
1. Kod
Private Sub auto_open()
UserForm1.Show
End Sub

2. Kod
Private Sub auto_open()
If [l1] = ("04.06.2008") Then UserForm2.Show
End Sub
 
1. Kod
Private Sub auto_open()
UserForm1.Show
End Sub

2. Kod
Private Sub auto_open()
If [l1] = ("04.06.2008") Then UserForm2.Show
End Sub

Private Sub auto_open() aynı programda iki kere kullanmıyorsunuzdur değilmi?
 
1. Kod
Private Sub auto_open()
UserForm1.Show
End Sub

2. Kod
Private Sub auto_open()
If [l1] = ("04.06.2008") Then UserForm2.Show
End Sub

Private Sub auto_open() aynı programda iki kere kullanmıyorsunuzdur değilmi?
:) Kullanmıyorum. İkisini aynı anda nasıl kullanırım diyorum. birleştirdiğimde elbette tek kod olarak denedim. Ama gelgörki birtürlü olmadı.
Ha nasıl birleştirdin derseniz,

Private Sub auto_open()
UserForm1.Show
End
If [l1] = ("04.06.2008") Then UserForm2.Show
End Sub

olarak denedim. Ama ne hata verdi nede userformları açtı. end kaldırdım hata verdi mesela. vs.vs.
İşte istediğim bunu nasıl yaparım.
 
If [l1] = ("04.06.2008") Then UserForm2.Show bölümünü Private Sub auto_open()
de kullanmayın bence, program içinde kullandığınızda ikinci form açılabiliyor. Anacak ShowModal true veya False ayarlarını iyi ayarlamak gerekiyor.

Çünkü .Show komutunu kullandığınızda eğer form .Hide değilse eror veriyor.
 
If [l1] = ("04.06.2008") Then UserForm2.Show bölümünü Private Sub auto_open()
de kullanmayın bence, program içinde kullandığınızda ikinci form açılabiliyor. Anacak ShowModal true veya False ayarlarını iyi ayarlamak gerekiyor.

Çünkü .Show komutunu kullandığınızda eğer form .Hide değilse eror veriyor.

peki bu kodu nasıl yazmalıyım.
yani Private Sub auto_open() kullanmazsam tarihi gördüğünde otomatik açılmayacak. ama açılmasınında benim için önemi var. hadi böyle yapmadım diyelim. sayfa actif olduğunda yapayım diyeceğim ama :) bununda sonu yokki şu anda 42 sayfa. 50 yi geçmez ama yinede her sayfaya kopyalamak gerekecek kodu. ve her sayfaya geçtiğimde eğer o tarihteyse açacak.

siz nasıl tavsiye edersiniz.
 
Slm. Private Sub UserForm_Initialize() de denediniz mi?
 
Veya Private Sub UserForm_Activate() de deneyin... Bende birşeyler deniyorum sonuca ulaşınca döneceğim
 
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("I1")) Is Nothing Then
Application.EnableEvents = False
Doevents
If [I1] = ("04.06.2008") Then UserForm2.Show
Application.EnableEvents = True
End If

gibi deneyin....
End Sub
 
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("I1")) Is Nothing Then
Application.EnableEvents = False
Doevents
If [I1] = ("04.06.2008") Then UserForm2.Show
Application.EnableEvents = True
End If

gibi deneyin....
End Sub

Yok Hocam gene olmadı. Hata da vermiyor açmıyorda. Milyontane kod denedim. Olmadı.
 
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("I1")) Is Nothing Then
Application.EnableEvents = False
Doevents
If [I1] = ("04.06.2008") Then UserForm2.Show
Application.EnableEvents = True
End If
gibi deneyin....
End Sub

Hocam olay çözülmüştür.
Uğraşların, düşüncelerin ve katkın için çok teşekkürler.

Koşula bağlı olarak otomatik user form açılışı

Private Sub auto_open()
UserForm1.Show
If [L1] = ("05.06.2008") Then
UserForm2.Show
End If
If [L1] = ("05.07.2008") Then
UserForm2.Show
End If
If [L1] = ("05.08.2008") Then
UserForm2.Show
End If
If [L1] = ("05.09.2008") Then
UserForm2.Show
End If
End Sub
 
Hocam olay çözülmüştür.
Uğraşların, düşüncelerin ve katkın için çok teşekkürler.

Koşula bağlı olarak otomatik user form açılışı

Private Sub auto_open()
UserForm1.Show
If [L1] = ("05.06.2008") Then
UserForm2.Show
End If
If [L1] = ("05.07.2008") Then
UserForm2.Show
End If
If [L1] = ("05.08.2008") Then
UserForm2.Show
End If
If [L1] = ("05.09.2008") Then
UserForm2.Show
End If
End Sub



Ama 8. koşuldan sonra sapıtıyor. Ve Excel'i çalışmaz hale getiriyor.
 
Ekli dosyayı inceleyiniz.
Userformların showmodal özelliklerini false yapınız.:cool:
 
Hocam süper. Teşekkürler. Siz 2 gündür nerdeydiniz allah aşkına.
Teşekkürler.
Rica ederim.
İyi çalışmalar.
Not:Yalnız dikkat edin.Açık olan userformu 2nci defa açmaya kalkmayın.
 
Ekli dosyayı inceleyiniz.
Userformların showmodal özelliklerini false yapınız.:cool:

Private Sub auto_open()
UserForm1.Show
If [L1] = ("18.06.2008") Then
UserForm2.Show
End If
If [L1] = ("18.07.2008") Then
UserForm2.Show
End If
If [L1] = ("18.08.2008") Then
UserForm2.Show
End If
If [L1] = ("18.09.2008") Then
UserForm2.Show
End If
If [L1] = ("18.10.2008") Then
UserForm2.Show
End If
If [L1] = ("18.11.2008") Then
UserForm2.Show
End If
If [L1] = ("18.12.2008") Then
UserForm2.Show
End If
If [L1] = ("18.01.2009") Then
UserForm2.Show
End If
If [L1] = ("18.02.2009") Then
UserForm2.Show
End If
If [L1] = ("18.03.2009") Then
UserForm2.Show
End If
If [L1] = ("18.04.2009") Then
UserForm2.Show
End If
If [L1] = ("18.05.2009") Then
UserForm2.Show
End If
If [L1] = ("18.06.2009") Then
UserForm2.Show
End If
If [L1] = ("18.07.2009") Then
UserForm2.Show
End If
If [L1] = ("18.08.2009") Then
UserForm2.Show
End If
If [L1] = ("18.09.2009") Then
UserForm2.Show
End If
If [L1] = ("18.10.2009") Then
UserForm2.Show
End If
End Sub

32 sayfalık excel tablosunda Sorunsuz olarak çalışmıştır.

1. form showmodal özellikliği true
2. form showmodal özellikliği false

olunca 1. form kapandıktan sonra otekı devreye giriyor. dahada güzel oldu.

saygılar. teşekkürler.
ECYavuz
Evren Gizlen
 
Geri
Üst