• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Zamanlı makro

Katılım
20 Ocak 2013
Mesajlar
26
Excel Vers. ve Dili
2010 Türkçe
Merhaba;

Elimde şirketin günlük raporlarını yapan 9 ad. ayrı ayrı butonlara tanımladığım makrolar bulunmaktadır ve bunlar problemsiz bir şekilde çalışmaktadır.
Bana gerekli olan kod şöyle;
A makrosunu her gün saat "19:00" da
B makrosunu her gün saat "19:02" de
C makrosunu her gün saat "19:05" de otomatik olarak çalıştırması.

Dosyayı ise windows Zamanlanmış görev tanımlama ekranından Her gün saat "18:55" de açmasıdır. ( Bununla ilgili problemim yok. Makro arşivi bulunan excel dosyasını dilediğim saatte her gün açıyor.)

Problemim makroların bulunduğu excelde ki makrolardan bazılarını zamanla kordine haline getirip otomatik olarak makroları çalıştırmak.

Konu hakkında yardımlarınızı rica ederim.

Saygılar Kolay Gelsin....
 
Merhaba;

Elimde şirketin günlük raporlarını yapan 9 ad. ayrı ayrı butonlara tanımladığım makrolar bulunmaktadır ve bunlar problemsiz bir şekilde çalışmaktadır.
Bana gerekli olan kod şöyle;
A makrosunu her gün saat "19:00" da
B makrosunu her gün saat "19:02" de
C makrosunu her gün saat "19:05" de otomatik olarak çalıştırması.
Merhaba
Bir "Modül" ekleyip, aşağıdaki gibi deneyin
Kod:
[SIZE="2"]Sub auto_Open()
Call çalış
End Sub


Sub çalış()
Dim m As Date
Dim s As Date
Dim s2 As Date
Dim s3 As Date
Dim s4 As Date
Dim kalan As Date
If Format(Now, "hh:mm:ss") > Format("19:05:01", "hh:mm:ss") Then Exit Sub
m = Now
s = Format(m, "hh:mm:ss")
s2 = Format("19:00:00", "hh:mm:ss")
s3 = Format("19:02:00", "hh:mm:ss")
s4 = Format("19:05:00", "hh:mm:ss")
If CDbl(s4) >= CDbl(s) Then kalan = CDbl(s4) - CDbl(s)
If CDbl(s3) >= CDbl(s) Then kalan = CDbl(s3) - CDbl(s)
If CDbl(s2) >= CDbl(s) Then kalan = CDbl(s2) - CDbl(s)

If s2 = s Then [COLOR="Red"]Call makro1[/COLOR]
If s3 = s Then [COLOR="Red"]Call makro2[/COLOR]
If s4 = s Then [COLOR="Red"]Call makro3[/COLOR]

AyarZaman = m + TimeValue(kalan)
Application.OnTime AyarZaman, "çalış"
End Sub[/SIZE]
 
Son düzenleme:
Merhaba
Bir "Modül" ekleyip, aşağıdaki gibi deneyin
Kod:
[SIZE="2"]Sub auto_Open()
Call çalış
End Sub


Sub çalış()
Dim m As Date
Dim s As Date
Dim s2 As Date
Dim s3 As Date
Dim s4 As Date
Dim kalan As Date
If Format(Now, "hh:mm:ss") > Format("19:05:01", "hh:mm:ss") Then Exit Sub
m = Now
s = Format(m, "hh:mm:ss")
s2 = Format("19:00:00", "hh:mm:ss")
s3 = Format("19:02:00", "hh:mm:ss")
s4 = Format("19:05:00", "hh:mm:ss")
If CDbl(s4) >= CDbl(s) Then kalan = CDbl(s4) - CDbl(s)
If CDbl(s3) >= CDbl(s) Then kalan = CDbl(s3) - CDbl(s)
If CDbl(s2) >= CDbl(s) Then kalan = CDbl(s2) - CDbl(s)

If s2 = s Then [COLOR="Red"]Call makro1[/COLOR]
If s3 = s Then [COLOR="Red"]Call makro2[/COLOR]
If s4 = s Then [COLOR="Red"]Call makro3[/COLOR]

AyarZaman = m + TimeValue(kalan)
Application.OnTime AyarZaman, "çalış"
End Sub[/SIZE]



Sayın Üstadım bi türlü çalıştıramadım kodları. Yani işlemi tamamlamıyor hata da vermiyor.
 
Merhaba
Bir "Modül" ekleyip, aşağıdaki gibi deneyin
Kod:
[SIZE="2"]Sub auto_Open()
Call çalış
End Sub


Sub çalış()
Dim m As Date
Dim s As Date
Dim s2 As Date
Dim s3 As Date
Dim s4 As Date
Dim kalan As Date
If Format(Now, "hh:mm:ss") > Format("19:05:01", "hh:mm:ss") Then Exit Sub
m = Now
s = Format(m, "hh:mm:ss")
s2 = Format("19:00:00", "hh:mm:ss")
s3 = Format("19:02:00", "hh:mm:ss")
s4 = Format("19:05:00", "hh:mm:ss")
If CDbl(s4) >= CDbl(s) Then kalan = CDbl(s4) - CDbl(s)
If CDbl(s3) >= CDbl(s) Then kalan = CDbl(s3) - CDbl(s)
If CDbl(s2) >= CDbl(s) Then kalan = CDbl(s2) - CDbl(s)

If s2 = s Then [COLOR="Red"]Call makro1[/COLOR]
If s3 = s Then [COLOR="Red"]Call makro2[/COLOR]
If s4 = s Then [COLOR="Red"]Call makro3[/COLOR]

AyarZaman = m + TimeValue(kalan)
Application.OnTime AyarZaman, "çalış"
End Sub[/SIZE]



Dosyayı ekte paylaşıyorum sayın hocam bi kontrol edip bana dönüş yaparsanız çok memnun olurum.
 

Ekli dosyalar

Sayın Hocam paylaşmış olduğum dosyada butonlarda ki sıralamalar doğru olup işlem sıradıda buna nazaran olacaktır. 1-2-3-4-5-6-7-8 gibi.

Bu işlemleri manüel yapınca problem yok makrolar düzgün bir şekilde çalışmaktadır. Fakat işlemleri belirli bir saatte akşam örnek vereyim saat 20:01 de başlamasını sırasına göre tamamlamasını istiyorum. Zaten en sonunda da auto close makrosu kullanarak mailler gittikten sonra excel sayfasını kapatma işlemi gerçekleştireceğim.

Şimdiden çok teşekkür ederim.
 
Sayın Üstadım bi türlü çalıştıramadım kodları. Yani işlemi tamamlamıyor hata da vermiyor.
Merhaba
Yukarıda belirttiğim gibi kodları bir modüle ekleyecek, dosyayı kaydedip kapatacak tekra açılışta; mesela "18:55" de açıldıysa 5 dakika sonra;
aralıklarla makroları çalıştıracaktır.
Örnek dosyanızı http://s3.dosya.tc/ adresine yükleyip indirme adresini bildirirmisiniz?
Saat "19:00" lar "20:00" mi olacaktı?

Örnek uygulama ekledim bir bakın
http://s3.dosya.tc/server8/1q2zsk/zamanli.zip.html
 
Son düzenleme:
Merhaba
Dosyanız ekte:
Dosyanızdaki 9 makro üç aşamada çalışacak şekilde siz gruplarda ayarlayabilirsiniz.
http://s3.dosya.tc/server8/ud6yr8/Rapor.zip.html
Kod:
'.........
 If s2 = s Then Call ılkgrup [COLOR="Blue"]'saat 19:00 da çalışacak grup[/COLOR]
If s3 = s Then Call ıkıncı '[COLOR="Blue"]saat 19:02 de çalışacak grup[/COLOR]
If s4 = s Then Call son '[COLOR="Blue"]saat 19:05 de çalışacak grup[/COLOR]
'.........

Kod:
Sub ılkgrup()
Run ("Raporları_Temizle")
Run ("Cari_Yaşlandırma_Temizle")
Run ("Günlük_Ekip_Raporu")
End Sub

Sub ıkıncı()
Run ("Cari_Yaşlandırma_Raporu")
Run ("Cari_Ciro_Oran_Takip_Raporu")
Run ("Borç_Alacak_Raporu")
End Sub

Sub son()
Run ("Hedef_Raporu")
Run ("Mail_Yolla")
Run ("Kayıt")
End Sub
 
Abi bahsettiğin grup ile işlemi gerçekleştirdim. Çok güzel çalışmaktadır. Gerçekten çok ama çok işime yaradı. Çok teşekkür ederim.

Saygılar sunarım.

Kolay Gelsin.
 
Geri
Üst