Otomatik 2 adet UserForm Açılışı

nihatkr

Altın Üye
Altın Üye
Katılım
25 Ağustos 2006
Mesajlar
442
Excel Vers. ve Dili
2007 Türkçe
2010 Türkçe
2013 Türkçe
OFİS 365
Altın Üyelik Bitiş Tarihi
09.10.2029
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
 
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
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?
 

nihatkr

Altın Üye
Altın Üye
Katılım
25 Ağustos 2006
Mesajlar
442
Excel Vers. ve Dili
2007 Türkçe
2010 Türkçe
2013 Türkçe
OFİS 365
Altın Üyelik Bitiş Tarihi
09.10.2029
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.
 
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
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.
 

nihatkr

Altın Üye
Altın Üye
Katılım
25 Ağustos 2006
Mesajlar
442
Excel Vers. ve Dili
2007 Türkçe
2010 Türkçe
2013 Türkçe
OFİS 365
Altın Üyelik Bitiş Tarihi
09.10.2029
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.
 
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
Slm. Private Sub UserForm_Initialize() de denediniz mi?
 
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
Veya Private Sub UserForm_Activate() de deneyin... Bende birşeyler deniyorum sonuca ulaşınca döneceğim
 

nihatkr

Altın Üye
Altın Üye
Katılım
25 Ağustos 2006
Mesajlar
442
Excel Vers. ve Dili
2007 Türkçe
2010 Türkçe
2013 Türkçe
OFİS 365
Altın Üyelik Bitiş Tarihi
09.10.2029
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
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
 

nihatkr

Altın Üye
Altın Üye
Katılım
25 Ağustos 2006
Mesajlar
442
Excel Vers. ve Dili
2007 Türkçe
2010 Türkçe
2013 Türkçe
OFİS 365
Altın Üyelik Bitiş Tarihi
09.10.2029
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ı.
 

nihatkr

Altın Üye
Altın Üye
Katılım
25 Ağustos 2006
Mesajlar
442
Excel Vers. ve Dili
2007 Türkçe
2010 Türkçe
2013 Türkçe
OFİS 365
Altın Üyelik Bitiş Tarihi
09.10.2029
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
 

nihatkr

Altın Üye
Altın Üye
Katılım
25 Ağustos 2006
Mesajlar
442
Excel Vers. ve Dili
2007 Türkçe
2010 Türkçe
2013 Türkçe
OFİS 365
Altın Üyelik Bitiş Tarihi
09.10.2029
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.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Ekli dosyayı inceleyiniz.
Userformların showmodal özelliklerini false yapınız.:cool:
 

nihatkr

Altın Üye
Altın Üye
Katılım
25 Ağustos 2006
Mesajlar
442
Excel Vers. ve Dili
2007 Türkçe
2010 Türkçe
2013 Türkçe
OFİS 365
Altın Üyelik Bitiş Tarihi
09.10.2029

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
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.
 

nihatkr

Altın Üye
Altın Üye
Katılım
25 Ağustos 2006
Mesajlar
442
Excel Vers. ve Dili
2007 Türkçe
2010 Türkçe
2013 Türkçe
OFİS 365
Altın Üyelik Bitiş Tarihi
09.10.2029
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
 
Üst