Soru Userform ile Çalışan Hatırlatma Programı

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Proğramınıza eklediğiniz kodları eklediğiniz hali ile ve veri tablonuzun örneğini tekrar paylaşırmısınız bakalım belki gözden kaçırdığınız bir şey vardır
Hocam @metin_0606 sizin kodlarınızı eklemeden kendi dosyamı ekledim.

Kullanici adi : deneme
Şifre: deneme

Dosya açılınca giriş formu açılıyor.
Ben eğer Hatırlatma varsa hatırlatama formu ustündeki textboxtayazdığım süre kadar zaman dilimi içinde hatırlatma varsa eklemesini istiyorum. Hocam kodları daha sonra kendi dosyama bağlayacağım için yapılan işlemi ve kodları da paylaşırsanız sevinirim
 

Ekli dosyalar

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Çalışma kitabı koruma şifresi 10 dur
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Hocam @metin_0606 sizin kodlarınızı eklemeden kendi dosyamı ekledim.

Kullanici adi : deneme
Şifre: deneme

Dosya açılınca giriş formu açılıyor.
Ben eğer Hatırlatma varsa hatırlatama formu ustündeki textboxtayazdığım süre kadar zaman dilimi içinde hatırlatma varsa eklemesini istiyorum. Hocam kodları daha sonra kendi dosyama bağlayacağım için yapılan işlemi ve kodları da paylaşırsanız sevinirim
Hocam Dosya bende çalışmadı . Giriş userformu çalıştıktan sonra hatırlatıcı formu gelmiyor malesef.
21. Mesajdaki gibi
Hatırlatma Tarihi ve Hatırlatma konusu listboxta görünse olmaz mı . Bu şekilde dosya işimi malesef görmüyor.
 
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Hocam Dosya bende çalışmadı . Giriş userformu çalıştıktan sonra hatırlatıcı formu gelmiyor malesef.
21. Mesajdaki gibi
Hatırlatma Tarihi ve Hatırlatma konusu listboxta görünse olmaz mı . Bu şekilde dosya işimi malesef görmüyor.
Deneyiniz
 

Ekli dosyalar

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Sayın Hocam @metin_0606 dosyada iki hata var sanırım

1 . Olarak

Userformda giriş kısmında



Kayıtlı kullanıcı Girişi kodlarının altına aşağıdaki kodları yazınca maalesef hatırlatıcı formu çalışmadı . Ama sizdeki dosyada bu kod çalışıyor. Tam olarak nereye ne kodunu yazdığınızı bulamadım.

Bu konuda yardımcı olursanız kodları güncellemem için



Unload Me

'Application.Visible = True 'excel penceresini görünür yapan bölüm

Labsifre = 0

If a <> 0 Then

Hatırlatıcı.Show

Else

Giriş.Show 0

End If

Else





2. olarak da hatırlatıcı userformunda tarihler mm/dd/yyyy şeklinde 06/30/2020 olduğundan tarih süzme işlemi hatalı çalışıyor
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Kod:
Unload Me

'Application.Visible = True 'excel penceresini görünür yapan bölüm

Labsifre = 0

If a <> 0 Then

Hatırlatıcı.Show

Else

Giriş.Show 0

End If

Else
burdaki If a <>0 şeklindeki a 'da tanımlı olan ne bilmediğim için hatırlatıcı formu ekrana açılışta gelmiyor. Ama 25. mesajdaki dosyada çalışıyor ben kendi kodlarımda hangi düzenlemeyi yapacağımı bulamadım bir türlü.

2. Olarak da tarih 6/20/2020 şeklinde geliyor ben 20/06/2020 şeklinde gelmesini istiyorum. Yardımcı olabilecek olan var mı acaba.
 
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
İlk girişte hatırlatıcı bilgi olup olmadığını kontrol etmek için kullanıldı. Eğer size hatırlatılması gereken konu varsa çalışmasını sağlıyor yoksa doğrudan giriş userformun açılmasını sağlıyor

Tarih kisminiz muhtemelen bilgisayarınız ingilizce olduğundan geliyordur. Eğer öyle ise kod daufak bir bir değişiklik yapılması gerekiyor
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
İlk girişte hatırlatıcı bilgi olup olmadığını kontrol etmek için kullanıldı. Eğer size hatırlatılması gereken konu varsa çalışmasını sağlıyor yoksa doğrudan giriş userformun açılmasını sağlıyor

hatırlatıcı olmasına rağmen ilk açılışta gelmiyor
Unload Me

'Application.Visible = True 'excel penceresini görünür yapan bölüm

Labsifre = 0

If a <> 0 Then

Hatırlatıcı.Show

Else

Giriş.Show 0

End If

Else
bunun dışında bir güncelleme yaptınız mı. Bu kodları ekledim ben ama olmadı. Nerede hata yapıyorum anlamadım

tarihi de bizim kullandığımız sisteme nasıl çeviririz acaba
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Team Viewer var uzaktan bağlanma imkanınız varsa şimdi daha rahat olur Hocam.
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Bu konuda yardımcı olabilecek var mı acaba
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Arkadaşlar n'apsamki userformun listboxu içinde 1 tane bile hatırlatıcı varsa userform ekrana gelsin yoksa gelmesin.

Kod:
Private Sub CommandButton2_Click()
Unload Me
Giriş.Show
End Sub



Private Sub ListBox1_Click()

End Sub

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Worksheets("HATIRLATMA").[L1] = TextBox1.Text
UserForm_Initialize

End Sub



 Private Sub UserForm_Initialize()

Dim X As Long, Satır As Long, yol As Long
    yol = Worksheets("HATIRLATMA").[L1]
    With Sayfa17
    Me.Caption = "HATIRLATMALAR"
    ListBox1.ColumnWidths = "90;120"
    For X = 2 To Range("A65536").End(3).Row
         If Cells(X, 1) >= Date And Cells(X, 1) <= Date + yol Then
            ListBox1.ColumnCount = 2
            With ListBox1
                .AddItem
                .list(Satır, 0) = Format(Cells(X, 1), "dd.mm.yyyy")
                .list(Satır, 1) = Cells(X, 2)
                 Satır = Satır + 1
            End With
        End If
    Next
    'Call PlayIt("C:\Windows\Media\Tada.wav ", 1) BU SATIR HATA VERİYOR

    TextBox1.Text = Worksheets("HATIRLATMA").[L1]
    End With
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,438
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

İlk olarak bazı hatırlatmalar yapmak isterim. Bu hatırlatmalarım proje hazırlama aşamasında olan tüm üyelerimiz için faydalı olacak bilgilerdir.

  • Foruma eklediğiniz dosyalarınızda şifre ve gizleme kodları kullanmayınız. Yardımcı olmak isteyenleri boş yere uğraştırmış oluyorsunuz.
  • Eklediğiniz örnek dosyayı incelediğimde o kadar düzensiz bir kod yazım tekniği var ki okumaya çalışırken gözlerim yoruldu.
  • Kod yazma tekniği olarak uçak burnu olarak tabir edilen girintili yazım tekniğiniz kullanmanız daha sonrasında kodlarda düzenleme gerektiğinde size ve yardımcı olmak isteyenlere okuma kolaylığı sağlayacaktır.


Dosyanızda yaptığım işlemler;

İlk olarak HATIRLATMA sayfasında E1 hücresine aşağıdaki formülü uyguladım.

C++:
=EĞERSAY(C:C;">="&L1)
Daha sonra açılışta ekrana gelen şifre giriş formundaki "Kayıtlı Kullanıcı Girişi" butonundaki kodları aşağıdaki gibi revize ettim.

C++:
Private Sub CommandButton1_Click()
If ComboBox1.Text = "" Then
MsgBox "Kullanıcı adını boş geçemezsiniz."
Exit Sub
End If

If TextBox1.Text = "" Then
MsgBox "ŞİFREYİ BOŞ GEÇEMEZSİNİZ."
Exit Sub
End If


yer = Worksheets("yetki").Shapes("sifre").OLEFormat.Object.Characters.Text

ActiveWorkbook.Protect Password:=yer, Structure:=False ', Windows:=True' kapatmak

For j = 1 To ActiveWorkbook.Sheets.Count
If Sheets(j).Name <> "anasayfa" Then
Sheets(Sheets(j).Name).Visible = False
End If
Next


aranan = TextBox1.Text

TextBox13.Text = ""
sut3 = ComboBox1.ListIndex + 1
Set Sh = Sheets("yetki")



For r = 1 To Sh.Shapes.Count
If TypeName(Sh.Shapes(r).OLEFormat.Object) = "OLEObject" Then
If TypeName(Sh.Shapes(r).OLEFormat.Object.Object) = "TextBox" Then
If Sh.Shapes(r).BottomRightCell.Row = 2 Then
If Sh.Shapes(r).BottomRightCell.Column = sut3 Then
TextBox13.Text = Sh.Shapes(r).OLEFormat.Object.Object.Value
End If
End If
End If
End If
Next


If aranan = TextBox13.Text Then

MsgBox "kullanıcı adı ve şifre doğru."


For j = 1 To ActiveWorkbook.Sheets.Count
If Sheets(j).Name <> "yetki" And Sheets(j).Name <> "anasayfa" Then

For r = 1 To Sh.Shapes.Count
If TypeName(Sh.Shapes(r).OLEFormat.Object) = "OLEObject" Then
If TypeName(Sh.Shapes(r).OLEFormat.Object.Object) = "TextBox" Then
If Sh.Shapes(r).BottomRightCell.Row > 3 Then
If Sh.Shapes(r).BottomRightCell.Column = sut3 Then
If Sheets(j).Name = Sh.Shapes(r).OLEFormat.Object.Object.Value Then
'MsgBox Sh.Shapes(r).OLEFormat.Object.Object.Value
Sheets(Sheets(j).Name).Visible = True
End If
End If
End If

End If
End If
Next

End If
Next




ActiveWorkbook.Protect Password:=yer, Structure:=True ', Windows:=True' kapatmak

Worksheets("yetki").Cells(1, "A").Value = ComboBox1.Text

alan1 = RightPadChar(ComboBox1.Text, " ", 35) & "/"
alan2 = RightPadChar(Format(Now, "dd:mm:yyyy  : hh:mm:ss"), " ", 39) & "/"
alan3 = RightPadChar("", " ", 22) & "/"
alan4 = RightPadChar(ComboBox1.Text & " kullanicisi giris yapti", " ", 35) & "/"


yaz = alan1 & alan2 & alan3 & alan4



i = 1
On Error Resume Next
Do While i <> Len(yaz) + 1
yazi = Mid(yaz, i, 1)
yazi = Chr(Asc(yazi) + 120)
kon = kon + yazi
i = i + 1
Loop
kayıt = ThisWorkbook.Path & "\şifreli_işlem.1st"

Open kayıt For Append As #1
Print #1, kon
'Print #1, alan1 & alan2 & alan3
Close #1


CommandButton19_Click


ActiveWorkbook.Save

Unload Me
'Application.Visible = True 'excel penceresini görünür yapan bölüm
Labsifre = 0

Dim S1 As Worksheet

Set S1 = Sheets("HATIRLATMA")

If S1.Range("E1") > 0 Then
    Hatırlatıcı.Show 0
Else
    Giriş.Show 0
End If

Else



Labsifre = Labsifre + 1

MsgBox Labsifre & " Kere yanlış Şifre veya Kullanıcı ismi girildi." & Chr(10) & _
"Şifre veya Kullanıcı ismi 3 defa yanlış girilirse kapanacaktır. ", vbInformation, "Uyarı"

If Labsifre >= 3 Then
Unload Me
'ActiveWorkbook.Save
ThisWorkbook.Close savechanges:=False
Application.Quit
End If
End If
End Sub
Sonrasında "Hatırlatıcı" formundan "Giriş" formuna geçebilmeniz için "Hatırlatıcı" formundaki KAPAT butonundaki kodu aşağıdaki gibi revize ettim.

C++:
Private Sub CommandButton2_Click()
    Unload Me
    Giriş.Show 0
End Sub
Ek olarak "Hatırlatıcı" formunun UserForm_Initialize olayındaki kodu aşağıdaki gibi revize ettim.

C++:
Private Sub UserForm_Initialize()
    Dim S1 As Worksheet, X As Long, Satir As Long, Gun As Long
   
    Set S1 = Sheets("HATIRLATMA")
   
    Gun = S1.Range("L1")
   
    With S1
        Me.Caption = "HATIRLATMALAR"
        ListBox1.ColumnWidths = "90;120"
        For X = 2 To S1.Cells(S1.Rows.Count, 1).End(3).Row
             If S1.Cells(X, 1) >= Date And S1.Cells(X, 1) <= Date + Gun Then
                ListBox1.ColumnCount = 2
                With ListBox1
                    .AddItem
                    .List(Satir, 0) = Format(S1.Cells(X, 1), "dd.mm.yyyy")
                    .List(Satir, 1) = S1.Cells(X, 2)
                     Satir = Satir + 1
                End With
            End If
        Next
       
        TextBox1.Text = Gun
    End With
End Sub
Bu işlemleri kendi dosyanızda düzgün şekilde yaparsanız sanırım sorun yaşamadan kullanabilirsiniz.
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Sayın @Korhan Ayhan Hocam çok teşekkür ederim. Dosya tam istediğim gibi . Elinize emeğinize sağlık. Çok teşekkür ederim.
 

onder_09

Altın Üye
Katılım
17 Mart 2017
Mesajlar
201
Excel Vers. ve Dili
2016 türkçe
Altın Üyelik Bitiş Tarihi
19-07-2025
Merhaba,

İlk olarak bazı hatırlatmalar yapmak isterim. Bu hatırlatmalarım proje hazırlama aşamasında olan tüm üyelerimiz için faydalı olacak bilgilerdir.

  • Foruma eklediğiniz dosyalarınızda şifre ve gizleme kodları kullanmayınız. Yardımcı olmak isteyenleri boş yere uğraştırmış oluyorsunuz.
  • Eklediğiniz örnek dosyayı incelediğimde o kadar düzensiz bir kod yazım tekniği var ki okumaya çalışırken gözlerim yoruldu.
  • Kod yazma tekniği olarak uçak burnu olarak tabir edilen girintili yazım tekniğiniz kullanmanız daha sonrasında kodlarda düzenleme gerektiğinde size ve yardımcı olmak isteyenlere okuma kolaylığı sağlayacaktır.


Dosyanızda yaptığım işlemler;

İlk olarak HATIRLATMA sayfasında E1 hücresine aşağıdaki formülü uyguladım.

C++:
=EĞERSAY(C:C;">="&L1)
Daha sonra açılışta ekrana gelen şifre giriş formundaki "Kayıtlı Kullanıcı Girişi" butonundaki kodları aşağıdaki gibi revize ettim.

C++:
Private Sub CommandButton1_Click()
If ComboBox1.Text = "" Then
MsgBox "Kullanıcı adını boş geçemezsiniz."
Exit Sub
End If

If TextBox1.Text = "" Then
MsgBox "ŞİFREYİ BOŞ GEÇEMEZSİNİZ."
Exit Sub
End If


yer = Worksheets("yetki").Shapes("sifre").OLEFormat.Object.Characters.Text

ActiveWorkbook.Protect Password:=yer, Structure:=False ', Windows:=True' kapatmak

For j = 1 To ActiveWorkbook.Sheets.Count
If Sheets(j).Name <> "anasayfa" Then
Sheets(Sheets(j).Name).Visible = False
End If
Next


aranan = TextBox1.Text

TextBox13.Text = ""
sut3 = ComboBox1.ListIndex + 1
Set Sh = Sheets("yetki")



For r = 1 To Sh.Shapes.Count
If TypeName(Sh.Shapes(r).OLEFormat.Object) = "OLEObject" Then
If TypeName(Sh.Shapes(r).OLEFormat.Object.Object) = "TextBox" Then
If Sh.Shapes(r).BottomRightCell.Row = 2 Then
If Sh.Shapes(r).BottomRightCell.Column = sut3 Then
TextBox13.Text = Sh.Shapes(r).OLEFormat.Object.Object.Value
End If
End If
End If
End If
Next


If aranan = TextBox13.Text Then

MsgBox "kullanıcı adı ve şifre doğru."


For j = 1 To ActiveWorkbook.Sheets.Count
If Sheets(j).Name <> "yetki" And Sheets(j).Name <> "anasayfa" Then

For r = 1 To Sh.Shapes.Count
If TypeName(Sh.Shapes(r).OLEFormat.Object) = "OLEObject" Then
If TypeName(Sh.Shapes(r).OLEFormat.Object.Object) = "TextBox" Then
If Sh.Shapes(r).BottomRightCell.Row > 3 Then
If Sh.Shapes(r).BottomRightCell.Column = sut3 Then
If Sheets(j).Name = Sh.Shapes(r).OLEFormat.Object.Object.Value Then
'MsgBox Sh.Shapes(r).OLEFormat.Object.Object.Value
Sheets(Sheets(j).Name).Visible = True
End If
End If
End If

End If
End If
Next

End If
Next




ActiveWorkbook.Protect Password:=yer, Structure:=True ', Windows:=True' kapatmak

Worksheets("yetki").Cells(1, "A").Value = ComboBox1.Text

alan1 = RightPadChar(ComboBox1.Text, " ", 35) & "/"
alan2 = RightPadChar(Format(Now, "dd:mm:yyyy  : hh:mm:ss"), " ", 39) & "/"
alan3 = RightPadChar("", " ", 22) & "/"
alan4 = RightPadChar(ComboBox1.Text & " kullanicisi giris yapti", " ", 35) & "/"


yaz = alan1 & alan2 & alan3 & alan4



i = 1
On Error Resume Next
Do While i <> Len(yaz) + 1
yazi = Mid(yaz, i, 1)
yazi = Chr(Asc(yazi) + 120)
kon = kon + yazi
i = i + 1
Loop
kayıt = ThisWorkbook.Path & "\şifreli_işlem.1st"

Open kayıt For Append As #1
Print #1, kon
'Print #1, alan1 & alan2 & alan3
Close #1


CommandButton19_Click


ActiveWorkbook.Save

Unload Me
'Application.Visible = True 'excel penceresini görünür yapan bölüm
Labsifre = 0

Dim S1 As Worksheet

Set S1 = Sheets("HATIRLATMA")

If S1.Range("E1") > 0 Then
    Hatırlatıcı.Show 0
Else
    Giriş.Show 0
End If

Else



Labsifre = Labsifre + 1

MsgBox Labsifre & " Kere yanlış Şifre veya Kullanıcı ismi girildi." & Chr(10) & _
"Şifre veya Kullanıcı ismi 3 defa yanlış girilirse kapanacaktır. ", vbInformation, "Uyarı"

If Labsifre >= 3 Then
Unload Me
'ActiveWorkbook.Save
ThisWorkbook.Close savechanges:=False
Application.Quit
End If
End If
End Sub
Sonrasında "Hatırlatıcı" formundan "Giriş" formuna geçebilmeniz için "Hatırlatıcı" formundaki KAPAT butonundaki kodu aşağıdaki gibi revize ettim.

C++:
Private Sub CommandButton2_Click()
    Unload Me
    Giriş.Show 0
End Sub
Ek olarak "Hatırlatıcı" formunun UserForm_Initialize olayındaki kodu aşağıdaki gibi revize ettim.

C++:
Private Sub UserForm_Initialize()
    Dim S1 As Worksheet, X As Long, Satir As Long, Gun As Long
  
    Set S1 = Sheets("HATIRLATMA")
  
    Gun = S1.Range("L1")
  
    With S1
        Me.Caption = "HATIRLATMALAR"
        ListBox1.ColumnWidths = "90;120"
        For X = 2 To S1.Cells(S1.Rows.Count, 1).End(3).Row
             If S1.Cells(X, 1) >= Date And S1.Cells(X, 1) <= Date + Gun Then
                ListBox1.ColumnCount = 2
                With ListBox1
                    .AddItem
                    .List(Satir, 0) = Format(S1.Cells(X, 1), "dd.mm.yyyy")
                    .List(Satir, 1) = S1.Cells(X, 2)
                     Satir = Satir + 1
                End With
            End If
        Next
      
        TextBox1.Text = Gun
    End With
End Sub
Bu işlemleri kendi dosyanızda düzgün şekilde yaparsanız sanırım sorun yaşamadan kullanabilirsiniz.
@Korhan Ayhan hocam merhaba bu kodların dosyası mevcut mu acaba ?
 
Üst