Koşul sağlanıyorsa UserForm açılsın

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
885
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Merhaba . Herkese kolay gelsin.
Yaptığım bir çalışmada bir hatırlatıcım var. Öğrencilerin doğum gününü hatırlatıyor. Hatırlatıcıda sorun yok ancak ; Doğum günü olan öğrenci bulunmaması durumunda üzerinde doğum günü olan çocukların adlarının bulunduğu görsel bulunan UseForm36 nın açılmamasını istiyorum. Ancak unload me, me.hide vb komutlarda sürekli "object variable or with block variable not set " hatası alıyorum.Kod aşağıda;
Kod:
Private Sub UserForm_Initialize()
Sheets("VERİ").Activate

 tarih = Format(Now, "dd.mm")
For i = 1 To Sheets("VERİ").Range("AW65536").End(3).Row
       
    If tarih = Format(Cells(i, 49), "dd.mm") Then
     say = say + 1
         mesaj = "Doğum günü olanlar : " & vbCr
            msj = msj & Cells(i, 3) & vbCr
                Label1 = "İyiki Doğdun:" & msj
    End If
Next i
    If say = 0 Then
   MsgBox "Bugün Doğum Günü olan öğrenciniz bulunmamaktadır"
  ....
  ....
    Else
        MsgBox "Bugün doğum günü olan " & say & " öğrenciniz var" & vbCr & _
        mesaj & vbCr & msj
  
End If

End Sub
... bölümlerde belirttiğim komutlar denendi.
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,746
Excel Vers. ve Dili
2010-2016
Örnek dosyanız olsa daha kolay olurdu. Say ve mesaj ifadesini public olarak tanımlayın. Kodlarınızı hangi işlemle çalışmasını istiyorsanız (butonda ya da sayfa akıtif olunca vs.) o bolüme alın. Eğer say>0 ise formu aktif edin. Eğer sıfır ise işlem yapmasın.
 

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
885
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Tam dosya olmasa da örnek ekledim. İlgilenen olursa..
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,255
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Userform1 nasıl açılıyor?
 

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
885
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Userform1 nasıl açılıyor?
Korhan bey merhaba. Dosya olmadan ne kadar açıklayıcı olur bilemiyorum, ancak elimden geldiğince izah edeyim.
Program açılışında veri sayfasındaki ilgili bölüm kontrol edilerek doğum günü olan çocuk var ise bunu mesaj ile söyleyip UserForm1'i açıyor.Buradan bulunan userform üzerinde görsel ve çocukların adı ile açılıyor. Bunda sorun yok. Sorun;
Olmama durumu, doğum günü olan çocuk yok ise yine mesaj kutusu ile bunu kullanıcıya söyleyip UserForm2 'ye yani ana forma gidiyor. Burada da sorun yok. Sorun ana formdan excele dönüşte UserForm1 açık geliyor. Bunun olmaması için aslında ben 'Eğer öğrenci yoksa gelen' Doğum günü olan öğrenciniz bulunmamaktadır mesajının arkasından, ya UserForm1'in çağrılmaması ya da mesajın arkasından otomatik açıldığı için kapatılması gerektiğini düşünerek , formun kapatılması için farklı kodlamalar denedim. Bu kez de object variable... hatası veriyor. Umarım anlatabilmişimdir.
 

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2021 Excel Tr
Doğru anladı isem
Kod:
Private Sub Workbook_Open()
Sheets("VERİ").Activate
 tarih = Format(Now, "dd.mm")
For i = 1 To Sheets("VERİ").Range("AW65536").End(3).Row
      
    If tarih = Format(Cells(i, 49), "dd.mm") Then
     say = say + 1
         mesaj = "Doğum günü olanlar : " & vbCr
            msj = msj & Cells(i, 3) & vbCr
                Label1 = "İyiki Doğdun:" & msj
    End If
Next i
    If say = 0 Then
    MsgBox "Bugün Doğum Günü olan öğrenciniz bulunmamaktadır.Ana menüye gitmek istiyor musunuz?"
    Else
        MsgBox "Bugün doğum günü olan " & say & " öğrenciniz var" & vbCr & mesaj & vbCr & msj
UserForm2.Show
End If
End Sub
 

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
885
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Private Sub Workbook_Open()
Sheets("VERİ").Activate
tarih = Format(Now, "dd.mm")
For i = 1 To Sheets("VERİ").Range("AW65536").End(3).Row

If tarih = Format(Cells(i, 49), "dd.mm") Then
say = say + 1
mesaj = "Doğum günü olanlar : " & vbCr
msj = msj & Cells(i, 3) & vbCr
Label1 = "İyiki Doğdun:" & msj
End If
Next i
If say = 0 Then
MsgBox "Bugün Doğum Günü olan öğrenciniz bulunmamaktadır.Ana menüye gitmek istiyor musunuz?"
Else
MsgBox "Bugün doğum günü olan " & say & " öğrenciniz var" & vbCr & mesaj & vbCr & msj
UserForm2.Show
End If
End Sub

Mahmut Bey teşekkürler, ancak formun açılışı ile ilgili bir sorunum yok. Üstteki açıklamamda da belirttiğim gibi, Eğer doğum günü olan çocuk yoksa; doğum günü gelen yoktur (renklendirdiğim mesaj) mesajından sonra gelenuserform2 (bende anaform) üzerinden excele döndüğümde userform1 yani doğum günü kutlama formu açık kalıyor. Sorunum bu...
Yani bu mesajı verdirdikten sonra kodu yazdığımız bu formun ( Userform1) kapanması gerekiyor, ya da hiç açılmaması...
 
Son düzenleme:

ASMET67

Altın Üye
Katılım
8 Haziran 2007
Mesajlar
410
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
30-11-2027
Ekli dosyayı denermisiniz.
 

Ekli dosyalar

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2021 Excel Tr
Kodlarınızı
UserForm_Initialize
değil de Activate içine alıp bir deneyin.
Kod:
Private Sub UserForm_Activate()

'...kodlarınız

End Sub
 

Ekli dosyalar

Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,255
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Eklediğiniz dosyada Userform2 açılıyor. Bu sebeple sorumu yöneltmiştim. Ama sorumun cevabına ithafen kodları göremedim.

Userform1 formunu açan kodların altına bir kontrol satırı eklenmesi formun açılması engellenebilir.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst