Çözüldü SAATİ GELİNCE BUTON AKTİF OLSUN. (USERFORM AÇIKKEN)

Katılım
24 Haziran 2017
Mesajlar
749
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
13-01-2024
UserForm1 üzerinde "SAAT" adıyla label var ve anlık olarak saati gösteriyor. benim sorum şu. Label üzerindek saat 12:00:00 a eşit oldugğunda veya 12:00:00 dan büyükse commandbutton görünür olsun. tabi userform açık olsa bile sistem yerine getirsin. userformu kapatıp açmayayım.

kısaca saat 12 den sonra düğme görünsün ama 12 den önceyse görünmesin

kullandığım kodlama aşağıda ama işlem yapmıyor


Private Sub UserForm_Initialize()
If SAAT.Caption >= ("12:00:00") Then
CommandButton2.Visible = True
End If
End Sub



Saygılarımla
 

Korhan Ayhan

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

Aktif saat için kullandığınız tarzda aktif çalışan bir saat sorgusu oluşturursanız istediğiniz sonuca ulaşabilirsiniz. Sizin yazdığınız kod sadece form yüklenme esnasında çalışacağı için sonuç vermeyecektir.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,786
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Bu kodu bir dene

Kod:
Private Sub UserForm_Initialize()
If Format(SAAT.Caption, "hh:nn:ss") >= Format("12:00:00", "hh:nn:ss") Then
CommandButton2.Visible = True
End If
End Sub
 

Cengiz Demir

Altın Üye
Katılım
29 Haziran 2018
Mesajlar
597
Excel Vers. ve Dili
Office 365 TR (32 Bit)
Altın Üyelik Bitiş Tarihi
05-04-2025
Netten bulduğum saat makrosunu, sizin örneğinize göre uyarladım. Bir deneyin işinize yarayacak mı ?
Label için yazılmış saat kodlarını da aşağıdaki örneğe göre düzenleyebilirsiniz :)
--------------------------------------------

Kod:
Private Sub UserForm_Initialize()

CommandButton2.Visible = False
Call Recalc

End Sub


Private Sub UserForm_Terminate()

Call Disable

End Sub

------------------------------------------------------------------------
' Bu kodları module kopyalayın.

Dim SchedRecalc As Date
Sub Recalc()
If Format(Time, "hh:nn:ss") >= "12:00:00" Then
UserForm1.CommandButton2.Visible = True: Call Disable: Exit Sub
End If
Call SetTime
End Sub

Sub SetTime()
SchedRecalc = Now + TimeValue("00:00:01")

Application.OnTime SchedRecalc, "Recalc"
End Sub

Sub Disable()
On Error Resume Next
Application.OnTime EarliestTime:=SchedRecalc, Procedure:="Recalc", Schedule:=False
End Sub
 
Son düzenleme:
Katılım
24 Haziran 2017
Mesajlar
749
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
13-01-2024
hocalarım her iki formülde olmadı. benmi yapamadım yoksa
 

Ekli dosyalar

Cengiz Demir

Altın Üye
Katılım
29 Haziran 2018
Mesajlar
597
Excel Vers. ve Dili
Office 365 TR (32 Bit)
Altın Üyelik Bitiş Tarihi
05-04-2025
Dosyanızı bir paylaşım sitesiyle paylaşıp gönderebilirseiniz bakabilirim :)
 
Katılım
24 Haziran 2017
Mesajlar
749
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
13-01-2024
cengiz hocam şubede olduğum için dosya paylaşım sitesi kullanamıyorum
 

Cengiz Demir

Altın Üye
Katılım
29 Haziran 2018
Mesajlar
597
Excel Vers. ve Dili
Office 365 TR (32 Bit)
Altın Üyelik Bitiş Tarihi
05-04-2025
Hımm. O zaman diğer hocalarımızdan biri kontrol edebilir sanırım :)
 

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
Netten bulduğum saat makrosunu, sizin örneğinize göre uyarladım. Bir deneyin işinize yarayacak mı ?
Label için yazılmış saat kodlarını da aşağıdaki örneğe göre düzenleyebilirsiniz :)
--------------------------------------------

Kod:
Private Sub UserForm_Initialize()

CommandButton2.Visible = False
Call Recalc

End Sub


Private Sub UserForm_Terminate()

Call Disable

End Sub

------------------------------------------------------------------------
' Bu kodları module kopyalayın.

Dim SchedRecalc As Date
Sub Recalc()
If Format(Time, "hh:mm:ss") >= "12:00:00" Then
UserForm1.CommandButton2.Visible = True: Call Disable: Exit Sub
End If
Call SetTime
End Sub

Sub SetTime()
SchedRecalc = Now + TimeValue("00:00:01")

Application.OnTime SchedRecalc, "Recalc"
End Sub

Sub Disable()
On Error Resume Next
Application.OnTime EarliestTime:=SchedRecalc, Procedure:="Recalc", Schedule:=False
End Sub
CommanButton2 yazan yerleri, CommandButton1 yapıp deneyin.
 

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
Zülfü bey bende çalışıyor saati modüldeki zamanı 15:29 yapıp denedim, o ana gelince buton aktif oldu.
Kodlar labelden almıyor. direk sistem saatinden alıyor. Bu yüzden olmuş olabilir. Zaman ile oynarsanız olur inş.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,786
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Bu kodunuza kırmızı bölümü ekledim
 
Son düzenleme:

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,786
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
kodu bu şekilde düzenletiniz.
Rich (BB code):
Sub Recalc()
UserForm1.SAAT.Caption = Format(Now, "hh.nn.ss")
If Format(UserForm1.SAAT.Caption, "hh:nn:ss") >= Format("15:06:00", "hh:nn:ss") Then
UserForm1.CommandButton1.Visible = True: Call Disable: Exit Sub
End If
Call SetTime
End Sub
 
Son düzenleme:
Katılım
24 Haziran 2017
Mesajlar
749
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
13-01-2024
@Mahmut Bayram; @halit3 evet hocam haklısınız oldu. ben orda time yi aslında label ismi olarak algıladım ve ona göre uyarladım. sizin yaptığınız direk sistem üzerinden alıyor ve öylesi daha mükemmel elbette. emekleriniz için çok teşekkür ederim

üyelerin işine yarar diye bitmiş dosya örneği ektedir.
 

Ekli dosyalar

Son düzenleme:

Cengiz Demir

Altın Üye
Katılım
29 Haziran 2018
Mesajlar
597
Excel Vers. ve Dili
Office 365 TR (32 Bit)
Altın Üyelik Bitiş Tarihi
05-04-2025
Sayın halit3 hocam ben kodlarken saat formatındaki dakikayı yanlış kodlamışım. ("mm") olarak.

Siz düzeltme yapmışsınız ama burada yine mm kalmış. Format(UserForm1.SAAT.Caption, "hh:mm:ss") Ordada nn olması gerekiyor sanırım.. :)
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,786
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Sayın halit3 hocam ben kodlarken saat formatındaki dakikayı yanlış kodlamışım. ("mm") olarak.

Siz düzeltme yapmışsınız ama burada yine mm kalmış. Format(UserForm1.SAAT.Caption, "hh:mm:ss") Ordada nn olması gerekiyor sanırım.. :)
Evet mm (ay) olarak kalmış nn (dakika) yaptım
 
Katılım
24 Haziran 2017
Mesajlar
749
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
13-01-2024
evet bende bi farklılık oldugunu farkettim. emeklerinize sağlık
 
Katılım
24 Haziran 2017
Mesajlar
749
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
13-01-2024
@Haluk sayin haluk ilginiz icin cok tesekkur ederim. ancak 12 yil once paylasilmis bir dosyayi sanki atif eder gibivsoylemeniz emegi gecen @Mahmut Bayram ve @halit3 hocamizin emegini ve ilgisini kucumsemek gibi olmus. yanlks algiladiysamd ozur dilerim am ben oyle algiladim hicbir hocamizin hicbir emegini ufacikta olsa kucumswmek ve yillar sonra paylasmalarini hafife almak uzucu bir durum bence. emegi gecen butun arkadaslarimiza twsekkur ederim ayrica sizdw biseyler paylastiginiz icin sizede twsekkur ederim
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
@Haluk sayin haluk ilginiz icin cok tesekkur ederim. ancak 12 yil once paylasilmis bir dosyayi sanki atif eder gibivsoylemeniz emegi gecen @Mahmut Bayram ve @halit3 hocamizin emegini ve ilgisini kucumsemek gibi olmus. yanlks algiladiysamd ozur dilerim am ben oyle algiladim hicbir hocamizin hicbir emegini ufacikta olsa kucumswmek ve yillar sonra paylasmalarini hafife almak uzucu bir durum bence. emegi gecen butun arkadaslarimiza twsekkur ederim ayrica sizdw biseyler paylastiginiz icin sizede twsekkur ederim

-Mesajınızı 3 defa okudum ama hiçbir şey anlamadım.... Ne demek istiyorsunuz?

-Kimin emeğini küçümsemişim?

-".... ancak 12 yil once paylasilmis bir dosyayi sanki atif eder gibivsoylemeniz....." >>>>> Burada ne demek istediğinizi hiç anlamadım. Burada bahsettiğim 12 yıl önceki dosya Zeki Beye ait bir dosya. Halit Bey veya Mahmut Beye ait değil..... ayrıca, benim onlara hitaben herhangi bir olumsuz hitabım da olmadı.

.
 
Son düzenleme:
Üst