• DİKKAT

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

belirli saatlerde açık dosyayı kapatmak ?

  • Konbuyu başlatan Konbuyu başlatan HD1975
  • Başlangıç tarihi Başlangıç tarihi
Katılım
13 Şubat 2009
Mesajlar
289
Excel Vers. ve Dili
office 2003
Merhaba ;

Excel açıkken aktif sayfayı belirleyeceğim zamanlarda otomatik olarak kapatan
makro yapma imkanımız varmı.

Örnek : Sayfa1 açıksa saat 10:00'da 12:00'de 14:00'de 16:00'da 20:00 de
otomatik olarak kapansın.

Kapatmayı yaparkende uyarı verebilir.

Saygılar
 
Selamlar,

Ekteki örnek dosyayı incelermisiniz.


Kod ThisWorkBook bölümüne uygulanacaktır.

Kod:
Option Explicit
 
Private Sub Workbook_Open()
Başla:
    DoEvents
    Select Case Format(Time, "hh:mm")
        Case Is = "10:00": DOSYA_KAPAT
        Case Is = "12:00": DOSYA_KAPAT
        Case Is = "14:00": DOSYA_KAPAT
        Case Is = "16:00": DOSYA_KAPAT
        Case Is = "20:00": DOSYA_KAPAT
        Case Else: GoTo Başla:
    End Select
End Sub
 
Sub DOSYA_KAPAT()
    ThisWorkbook.Save
    MsgBox "Dosyanız otomatik kapanmaya ayarlanmıştır." & vbCrLf & "Dosyanız kapatılacaktır.", vbInformation
    If Excel.Application.Windows.Count > 1 Then
    ThisWorkbook.Close
    Else
    Application.Quit
    End If
End Sub
 

Ekli dosyalar

Selamlar,

Ekteki örnek dosyayı incelermisiniz.


Kod ThisWorkBook bölümüne uygulanacaktır.

Kod:
Option Explicit
 
Private Sub Workbook_Open()
Başla:
    DoEvents
    Select Case Format(Time, "hh:mm")
        Case Is = "10:00": DOSYA_KAPAT
        Case Is = "12:00": DOSYA_KAPAT
        Case Is = "14:00": DOSYA_KAPAT
        Case Is = "16:00": DOSYA_KAPAT
        Case Is = "20:00": DOSYA_KAPAT
        Case Else: GoTo Başla:
    End Select
End Sub
 
Sub DOSYA_KAPAT()
    ThisWorkbook.Save
    MsgBox "Dosyanız otomatik kapanmaya ayarlanmıştır." & vbCrLf & "Dosyanız kapatılacaktır.", vbInformation
    If Excel.Application.Windows.Count > 1 Then
    ThisWorkbook.Close
    Else
    Application.Quit
    End If
End Sub

Çok güzel olmuş,yalnız uyarı verdikten sonra kendisi kapansın.
Kullanıcıdan onay vermesi beklenmemesi gerekiyor.

MsgBox "Dosyanız otomatik kapanmaya ayarlanmıştır." & vbCrLf & "Dosyanız kapatılacaktır.", vbInformation
bu boxı kaldırınca otomatik kapandı.

Saygılar
 
Açık dosyayı kapattıktan sonra bazı verileri başka dosyaya yazabilrimiyiz ?

Çok güzel olmuş,yalnız uyarı verdikten sonra kendisi kapansın.
Kullanıcıdan onay vermesi beklenmemesi gerekiyor.

MsgBox "Dosyanız otomatik kapanmaya ayarlanmıştır." & vbCrLf & "Dosyanız kapatılacaktır.", vbInformation
bu boxı kaldırınca otomatik kapandı.

Saygılar

Yukarıdaki kapatma işleminden sonra bir durum daha gerçekleştirmem gerekecek.
Şimdi üç tane farklı kullanıcıların kullandığı veri isminde dosyalarım var.
Bunlara veri yazan üç tanede not ismimde dosyam var.

Yukarıdaki zaman ayarlı makroyu not ismindeki dosylarda kullanacağım.
Not dosyaları kapandığı anda,veri dosyalarındaki günün tarihine ait olan
verileri üç veri dosyası arasında senkronize etsin.



Saygılar
 
ufak ayrıntı

Yukarıdaki kapatma işleminden sonra bir durum daha gerçekleştirmem gerekecek.
Şimdi üç tane farklı kullanıcıların kullandığı veri isminde dosyalarım var.
Bunlara veri yazan üç tanede not ismimde dosyam var.

Yukarıdaki zaman ayarlı makroyu not ismindeki dosylarda kullanacağım.
Not dosyaları kapandığı anda,veri dosyalarındaki günün tarihine ait olan
verileri üç veri dosyası arasında senkronize etsin.



Saygılar

Not dosyası kapandığı zaman veri dosyaları arasında senkronize yaparken.
Her veri dosyasının içerisinden bulunduğu gün içerisindeki notları diğer veri
dosyalarına aktaracak.

Bu aktarma işleminden sonra iki saat sonra diğer kapatma gerçekleşince,
tekrar senkronize yaparken bir önceki aktarma yaptığı verileri mükerrer olarak
tekrar aktarma yapmayacak.

bunun için veri dosyasındaki satırların karşısına her satır için sıra numarası
koyuyorum.

c,deki veri dosyasının sırano c1 den,
d, deki veri dosyasının sırano d1 den
e deki veri dosyasının sırano e1 den başlayacaktır.

Bu sıra numaralarına göre senkronize yaparken sorgulama yapması gerek.
Bu benim acizane önerim.

Daha farklı bir usul varsa olabilir

Gerekli olursa dosyayıda gönderebilirim

Saygılar
 
Soru biraz karıştı sanırım yeniden toparlıyorum

Not dosyası kapandığı zaman veri dosyaları arasında senkronize yaparken.
Her veri dosyasının içerisinden bulunduğu gün içerisindeki notları diğer veri
dosyalarına aktaracak.

Bu aktarma işleminden sonra iki saat sonra diğer kapatma gerçekleşince,
tekrar senkronize yaparken bir önceki aktarma yaptığı verileri mükerrer olarak
tekrar aktarma yapmayacak.

bunun için veri dosyasındaki satırların karşısına her satır için sıra numarası
koyuyorum.

c,deki veri dosyasının sırano c1 den,
d, deki veri dosyasının sırano d1 den
e deki veri dosyasının sırano e1 den başlayacaktır.

Bu sıra numaralarına göre senkronize yaparken sorgulama yapması gerek.
Bu benim acizane önerim.

Daha farklı bir usul varsa olabilir

Gerekli olursa dosyayıda gönderebilirim

Saygılar

MErhaba
Not isminde ve veri isminde dosyalarım var,not dosyasında bir işlem yaptığım zaman bunu veri dosyasına yazdırıyorum.

Sorun şu not dosyası açıkken ver idosyasına müdahale edemiyorum,dosya kilitleniyor.

Bunu çözemediğimden veri dosyasını aynı anda birden fazla kullanıcı kullanımıyor.

Bende bunu çözmek için bir yol üreetim oda şudur.

1-Her kullancı için veri ve not dosyalarından birer adet oluşturdum.
Herkes bağımsız olarak kullanıyor.

2-Bu kullanıcılara ait veri dosyalarındaki farklı bilgileri tüm kullancıların veri
dosyalarında eşitlemem gerekiyor.

3-Veri dosyaları not dosyaları açıkken kilitli olduğu için,forumda bir uzmanımızın
yazdığı belli saatlerde otomatik kapanma makrosunu devreye alıyorum.

4-Bu makronun dosyayı kapatmasından sonra veri dosyaları kendi aralarındaki
bilgi güncellelemelerini yapmasını istiyorum.

5-Bilgi güncellemeleri belirli saatlerde sürekli yapılacağından,güncelleme
yapılırken bit önceki saatde aktarılan veriler bir sonraki saatde tekrar
yazılmayacak.

6-Gönderdiğim dosyalarda yukarıdaki kodlar ekli değil henüz bu zaman
ayarlı kodu ekleyip devamında kapalı olan veri dosyaları arasında
kopyalama işlemine yapacak makro gerekiyor.

7-Ben bir adet not ve bir adet veri dosyası gönderdim.


Saygılar
 

Ekli dosyalar

İlgilenebilecek biri varmı ?

MErhaba
Not isminde ve veri isminde dosyalarım var,not dosyasında bir işlem yaptığım zaman bunu veri dosyasına yazdırıyorum.

Sorun şu not dosyası açıkken ver idosyasına müdahale edemiyorum,dosya kilitleniyor.

Bunu çözemediğimden veri dosyasını aynı anda birden fazla kullanıcı kullanımıyor.

Bende bunu çözmek için bir yol üreetim oda şudur.

1-Her kullancı için veri ve not dosyalarından birer adet oluşturdum.
Herkes bağımsız olarak kullanıyor.

2-Bu kullanıcılara ait veri dosyalarındaki farklı bilgileri tüm kullancıların veri
dosyalarında eşitlemem gerekiyor.

3-Veri dosyaları not dosyaları açıkken kilitli olduğu için,forumda bir uzmanımızın
yazdığı belli saatlerde otomatik kapanma makrosunu devreye alıyorum.

4-Bu makronun dosyayı kapatmasından sonra veri dosyaları kendi aralarındaki
bilgi güncellelemelerini yapmasını istiyorum.

5-Bilgi güncellemeleri belirli saatlerde sürekli yapılacağından,güncelleme
yapılırken bit önceki saatde aktarılan veriler bir sonraki saatde tekrar
yazılmayacak.

6-Gönderdiğim dosyalarda yukarıdaki kodlar ekli değil henüz bu zaman
ayarlı kodu ekleyip devamında kapalı olan veri dosyaları arasında
kopyalama işlemine yapacak makro gerekiyor.

7-Ben bir adet not ve bir adet veri dosyası gönderdim.


Saygılar

Merhaba

Yardımcı olabilecek bir arkadaş varmı
 
Cevap verebilecek yokmu arkadaşlar

Cevap verebilecek yokmu arkadaşlar
 
Bu işlemin tersini yapılabilir mi ?
Belirli zamanlarda istenilen excel dosyasını açabilir miyiz acaba ?

Teşekkür ederim.
 
Korhan bey teşekkürler. ilerde işime yarayabilir..
 
Korhan hocam selamlar;

Aşağıdaki kod listesine

Sheets("ANASAYFA").Select

kodunu hangi satıra eklemeliyim; bu kod ile sayfa açıldığında hagi sayfada kayıd edilirse edilsin istediğim sayfada açılmasını sağlıyordum.

Yardımcı olabilirmisiniz.



Option Explicit

Private Sub Workbook_Open()
Başla:
DoEvents
Select Case Format(Time, "hh:mm")
Case Is = "10:00": DOSYA_KAPAT
Case Is = "12:00": DOSYA_KAPAT
Case Is = "14:00": DOSYA_KAPAT
Case Is = "16:00": DOSYA_KAPAT
Case Is = "20:00": DOSYA_KAPAT
Case Else: GoTo Başla:
End Select
End Sub

Sub DOSYA_KAPAT()
ThisWorkbook.Save
MsgBox "Dosyanız otomatik kapanmaya ayarlanmıştır." & vbCrLf & "Dosyanız kapatılacaktır.", vbInformation
If Excel.Application.Windows.Count > 1 Then
ThisWorkbook.Close
Else
Application.Quit
End If
End Sub
 
Yardımcı olabilecek başka uzman arkadaşlar var mı?
 
Geri
Üst