Soru Süreli makro nasıl?

Katılım
27 Eylül 2016
Mesajlar
60
Excel Vers. ve Dili
2010 tr
Altın Üyelik Bitiş Tarihi
12.05.2024
Arkadaşlar kitabımda internet bağlantısını kontrol eden,
İf isconnected(int) =true then
Kodu var.
Pc de internet varsa hızlıca çalışıyor. Ama internet yoksa dönüyor dönüyor kitap çöküyor.
Buna süreli makro nasıl ayarlarım.
Şöylekş işlem başlayacak mesela 10 sn de bitmezse makroyu sonlandıracak. Teşekkürler.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.
Cevabımın altındaki İMZA bölümünde yer alan, örnek belge konusundaki kısa açıklamayı okuyunuz.
Sorunuzu bir örnek belge ile desteklerseniz daha hızlı sonuca ulaşabileceğinizi düşünüyorum.

İlk aklıma gelen kısa bir for....next döngüsü içinde internet bağlantı kontrolü ve Timer çalıştırılıp,
öngörülen süre sonunda bağlantı gerçekleşmezse makronun sonlandırılması sağlanabilir gibi görünüyor.
.
 
Katılım
27 Eylül 2016
Mesajlar
60
Excel Vers. ve Dili
2010 tr
Altın Üyelik Bitiş Tarihi
12.05.2024
sub kontrol ()
If Is_Connected() = True And Dir("Z:\SEFA DOĞRU\Feedbacks.xlsm") <> "" Then 'ORTAK Başka Kullanıcı da Açık Mı?
Set sourcewb = ThisWorkbook
Workbooks.Open ("Z:\SEFA DOĞRU\Feedbacks.xlsm")
Set destwb = ActiveWorkbook
destwb.Activate
If ActiveWorkbook.ReadOnly = True Then 'Dosya Salt Okunur İse;
ActiveWorkbook.Close True
sourcewb.Activate
CreateObject("WScript.Shell").PopUp "ORTAK'taki Dosya Başka Kullanıcı Da Salt Okunur Görüldü." & Chr(10) & " " & Chr(10) & "İşlem Başarısız.", 2, "UYARI"
GoTo AKZ
Else
ActiveWorkbook.Close True
sourcewb.Activate
End If
End If
AKZ:
End Sub

Koyu olan satırda, eğer koşul doğruysa sıkıntı olmadan çalışıyor.ama koşul sağlanmıyorsa makro bitmiyor.devamlı dönüyor. Bu durumda mesela 10 sn süre nasıl belirleriz. makro 10 sn boyunca bitmezse kendi bitirecek?
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,345
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Is_Connected fonksiyonunun içeriğini bilmiyoruz... ama muhtemel iki çalışma şekli var. Birincisi network adapter açık veya kapalı oluşu (sonuç hızlıdır), ikincisi ise adapter bağlı ise internete bağlanabilirlik (en kötü bağlantı hızında bile ping işlemi 10 saniyeyi geçmez).

Probleminiz muhtemelen Dir fonksiyonunuzun henüz dosyanın varlığını kontrol etmeden önce ağ köprüsünü açamamasından kaynaklanıyor olmalı.

Sınamanız da hatalı görünüyor...

PHP:
if is_connected then
   if dir(Z:\.....) then
      'kodlar....
   end if
end if
Ağ köprülerinin VBA ile kontrolu, eklenmesiyle ilgili örnekler aşağıdadır.

https://www.excel.web.tr/threads/wscript-network-wscript-shell-metot-ve-oezellikleri.42583/

.
 
Katılım
27 Eylül 2016
Mesajlar
60
Excel Vers. ve Dili
2010 tr
Altın Üyelik Bitiş Tarihi
12.05.2024
SN Zeki bey dediğiniz gibi isconnected ile dir komutunu ayırdım. Isconnected satırını hızlı geçiyor.ama eğer Z yi bulamazsa dönüp duruyor.
İsteğim Z yi 10 sn boyunca kontrol etsin. Yanıt alamazsa Sub dan kendiliğinden çıksın.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,345
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Bozuk bir ağ köprüsü bile çift tıklanarak açılmaya çalışıldığında windwos explorer'ın yanıt vermediği durum olabiliyor. Bu bir windows olayı olduğu için zaman aşımı kullanamıyoruz. Yapabileceğimiz tek kontrol, verdiğim bağlantıdaki örneklerden faydalanarak ağ köprüsü sürücü adı ile paylaşım adının olup olmadığıdır. Bozuk olup olmadığı ise, çalışma zamanı anlaşılacağından başlamadan önce ağ köprüsü sil-ekle yapılabilir.

Özetle, istediğiniz bu kontrol yani zaman aşımı Dir fonksiyonu ile yapılamaz.
 
Üst