Userformdaki saati kapatırken durdurmak için ek kod

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,549
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Bir userform üzerindeki label'de saat dakika saniye çalıştıran kod olarak ;

Private Sub UserForm_Activate()
Label20.Caption = Format(Now, "dddd d mmmm yyyy")
Do
Label17 = Time
DoEvents
Loop
End Sub

bulunmakta ve userform açık olduğu sürece çalışmakta. Ancak öyle sanıyorum ki saniye ilerlemesi olduğu sürece programdaki bazı diğer kodlar takılı kalmakta. Bu userform ve beraberinde exceli de kapatmak için

ThisWorkbook.save
Unload me
Application.Quit

kodlarını " programı kapat tuşuna yerleştirdiğim halde sadece userform kapanıyor ama excel açık kalmaya devam ediyor ya da sayfa başka kullanıcı tarafından kilitlendi uyarısı çıkıyor.

Çıkışta excel sayfa dahil bütün olarak kapatabilmem için saati durdurup kapatma işlemine devam etmeye izin vermesi için nasıl bir kod eklemem gerek ?
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,843
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
alternatif olarak userforma bir adet timer nesnesi ekleyin ve iki adet de CommandButton komut düğmesi ekleyin


Kod:
Private Sub CommandButton1_Click()
'çalıştır
Timer1.Interval = 1000
Timer1.Enabled = True
End Sub

Private Sub CommandButton2_Click()
'durdur
Timer1.Enabled = False
End Sub

Private Sub Timer1_Timer()
Label20.Caption = Format(Now, "dddd d mmmm yyyy")
Label17 = Time
End Sub
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,549
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Sayın Halit3

Sabit bilgisayara ulaşınca hemen deneyeceğim , teşekkür ederim .:)
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,549
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Sayın Halit3 ;

Herşeyden önce bilgilerinizin enginliği ile verdiğiniz destek için teşekkür ederim.

Net bilgim olmadığı için araştırırken , eğer doğru ise timer nesnesinin normalde excelde doğal olarak bulunmayabildiği ama timer.ocx indirip system32 içine atılması ile geldiği şeklinde bilgi edindim.

Bu hazırlanan program benim kullanımımda olan bir bilgisayarda değil ama işi için isteyen bir arkadaşımın işyerindeki 19 makinanın verilerini tutması ve izlemesi için tasarladığım ancak başka bir bilgisayarda çalışacak olan bir program .

Timer.ocx bendeki 2010 Türkçe excel'de yok , o bilgisayarda excel'in daha düşük versiyonu olduğunu biliyorum. Bunu var da ben mi bulamıyorum ya da ocx yüklediğim durumda diğer bilgisayarda da " nesne bulunamadı " hatası vermemesi için kurulması gerekecek mi ? Eğer gerekecekse işyeri bilgisayarı olduğundan çekincesi olabilir ( free olan timer.ocx lerin bir zarar vermeyeceğini ben bilsem de system32 içine atıp register edilmesini yapamaz ya da yapmaz )

Bu durumda verdiğim kodlar üzerinden ve bunun label.caption üzerinde gösterdiği saniyeli çalışan saatin excel'in kapat düğmesine basıldığında durması ve applcation.quit işlemine geçebilmesi yolunda bir öneriniz olabilir mi ? En azından caption üzerinde dakikaya çevirebilirsek time işlemi 59 saniye duracaktır ve altındaki quit çalışacaktır.

Ama nasıl ? Time sanırım sistem saatini okuyor.
 

halit3

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

Kod:
Dim dur As Boolean

Private Sub UserForm_Activate()
dur = False
Label20.Caption = Format(Now, "dddd d mmmm yyyy")
Do
Label17 = Time
DoEvents
If dur = True Then Exit Sub
Loop
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
dur = True
End Sub
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,549
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Sayın Halit3 ;

Kodlardaki bu düzenlemeyi uyguladım ve userform, ardından da excel hiç bir gecikme ya da durma yaşamadan kendilerini kapattı .

İşlemi defalarca denedim , önermiş olduğunuz bu kodlar sorunu çözümle buluşturdu.

Çok teşekkür ederim . :)
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,843
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Sayın Halit3 ;

Kodlardaki bu düzenlemeyi uyguladım ve userform, ardından da excel hiç bir gecikme ya da durma yaşamadan kendilerini kapattı .

İşlemi defalarca denedim , önermiş olduğunuz bu kodlar sorunu çözümle buluşturdu.

Çok teşekkür ederim . :)
Teşekkürler iyi çalışmalar
 
Üst