O anın tarihini otomatik yazdırma

Ayhan Ercan

Özel Üye
Katılım
10 Ağustos 2005
Mesajlar
1,571
Excel Vers. ve Dili
Microsoft 365- Türkçe
Ayhan Bey,
Haklısınız, denemeden yolladım. Daha dikkatli olmak lazım. Kodu incelerken bir hata da ben yakaladım. Sanırım kodun en doğru şekli şu şekilde olmalıydı:
Kod:
Option Explicit
Private Sub Worksheet_change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, [a:a,g:g]) Is Nothing Then Exit Sub
If Target.Column = 1 Then
    Target.Offset(0, 2).Value = Now
    Target.Offset(0, 2).NumberFormat = "dd.mm.yyyy"
    Target.Offset(0, 3).Value = Now
    Target.Offset(0, 3).NumberFormat = "hh:mm:ss"
ElseIf Target.Column = 7 Then
    Target.Offset(0, 2).Value = Now
    Target.Offset(0, 2).NumberFormat = "dd.mm.yyyy"
    Target.Offset(0, 3).Value = Now
    Target.Offset(0, 3).NumberFormat = "hh:mm:ss"
End If
End Sub

Option Explicit..... ;-)
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
:???:Optionu kastetmemiştim hocam.
7. kolonda işlem yaptığımızda, Target.Offset(0,6) olduğunda g'ye göre işlem yapıyor ve tarihi g'den itibaren 6 hücre sağa atıyor. Sanırım istenen 2 hücre sağa yazması. Yoksa yine yanılıyor muyum?
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,529
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Yapmak istediğim şöyle bir basit kasanın hem giriş hem çıkışına tarih ve saat eklemekti, yani;aşağı doğru bir ay olarak kullanmak üzere,

GELİR.........................................//////GİDER.....................................
A............D..............E...........F....//////G,,,,,,,,,,,J,,,,,,,,,,,,,,K,,,,,,,,,,,,L
Açıklama..Paramiktarı..Tarih.....Saat/////Açıklama..Paramiktarı..Tarih.....Saat


Sayın Leumruk 'un önerdiği kodları ;

Option Explicit
Private Sub Worksheet_change(ByVal Target As Range)
If Intersect(Target, [a:a,g:g]) Is Nothing Then Exit Sub
On Error Resume Next
Target.Offset(0, 2).Value = Now
Target.Offset(0, 2).NumberFormat = "dd.mm.yyyy"
Target.Offset(0, 3).Value = Now
Target.Offset(0, 3).NumberFormat = "hh:mm:ss"

'Target.Offset(0, 6).Value = Now
'Target.Offset(0, 6).NumberFormat = "dd.mm.yyyy"
'Target.Offset(0, 7).Value = Now
'Target.Offset(0, 7).NumberFormat = "hh:mm:ss"
End Sub

Şeklinde uygulayınca gelir ve gider haneleri aynı sayfanın solunda ve sağında , açıklama yazıp hücre değiştirince birbirinden münferit olarak , para miktarının sağ yanına tarih ve onun sağ yanına da saati aldı , çok teşekkür ederim .
Sayın Ayhan Ercan 'ın önerdiği kodları denediğimde ya ben bir hata yaptım ya da kodlar gelir bölümünde cevap vermekle beraber sağdaki gider bölümünde tarih ve saati çıkarmadı. Büyük ihtimalle ben bir dikkatsizlik yaptım.

Daha önemli bir kısım da , bir aylık olarak düşünülen bir kasada , doldurulmuş gelir ya da gider satırını kullanıma ya da silmeye kilitlemek ...Ama sanırım şu şekilde kriterler de gerekli .

a) Gelir tarafı ( A,D,E,F =Açıklama , paramiktarı, tarih, saat ) satırda dolduğunda
ve Gider tarafı (G,J,K,L =Açıklama , paramiktarı, tarih, saat ) satırda dolduğunda ve son hücreden çıkıldığında kendiliğinden kullanıma kilitlenmeli
b)Bugünün kasası için kilitlenme olmamalı ama bugünki kasa işlenirken dün ve daha önceki kasa listeleri kullanıma kilitlenmeli.
c)Bilgisayar tarihini geri alarak o günün çalıştırılmasına mani olunmalı. Ama nasıl ?

Acaba konuyu bu yönde yardımlarınızla ilerletmem mümkün olur mu ?

Tekrar Teşekkürlerimle
 
Son düzenleme:

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Örnek dosyanızı ekleyip, tablonuzda veri girildikten sonra kilitlenmesini istediğiniz hücreyi ve sürekli açık kalmasını istediğiniz bölümü belirtir misiniz?
 

Ayhan Ercan

Özel Üye
Katılım
10 Ağustos 2005
Mesajlar
1,571
Excel Vers. ve Dili
Microsoft 365- Türkçe
Sayın cems,

Sayın leumrukun son mesajını ve sizin söyledikleriniz okuyunca en iysi örnek bir dosya talep etmek olacak herhalde... :)

Mustafa hocam geç oldu artık. Ben yatıyorum sabah mesai var... Soruyu size bırakıyorum... ;-)
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Sayın cems,

Sayın leumrukun son mesajını ve sizin söyledikleriniz okuyunca en iysi örnek bir dosya talep etmek olacak herhalde... :)

Mustafa hocam geç oldu artık. Ben yatıyorum sabah mesai var... Soruyu size bırakıyorum... ;-)
:hey: Hay hay hocam, yalnız benim de mesaim var, dosya biraz daha gecikirse, başka arkadaşlar ilgilenecek herhalde.:biggrin:
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,529
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Ekte örneği sunuyorum ,

Gelir kısmındaki kendine ait 4 bölüm dolduğunda sadece bu dolu satırda kendine ait 4 hücreyi kilitlemesi
Gider kısmındaki kendine ait 4 bölüm dolduğunda da sadece bu dolu satırda kendine ait
4 hücreyi kilitlemesi

a) Bunu bugün yapmaması
b) Dün ve daha öncesi için yapması
c) Sistem saati ile oynansa dahi kilitin ( mesela bir sonraki satırda kayıt varsa kilide devam ettirmek gibi) açılmaması mümkünmü

Teşekkür ederim
 

Ekli dosyalar

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,529
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Gecikmemin sebebi , dosyanın anlamsızca birden 4 Kb a yükselmesi ve uploadı da sitenin bu yüzden kabul etmemesi oldu. Kontrol ettiğimde , ( bir silme hareketinden sonra )45.000 satıra tarih ve saat atmış olduğunu gördüm. Hücre silme sorunu artırıp , sağına bir daha tarih ve saat ekledi .En sonunda satır sil ile 45.000 satırı sildim .
Kendiliğinden bu kadar boş satıra tarih ve saat atması nasıl oldu bilmiyorum ama , sonradan bir sorun olarak çıkar mı karşıma diye düşündürdü.

Bununla beraber , sizleri bu saate kadar yordum , beklettim ; affola...Elde değildi ...
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,529
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Galiba yetiştiremedim :(
 

Ayhan Ercan

Özel Üye
Katılım
10 Ağustos 2005
Mesajlar
1,571
Excel Vers. ve Dili
Microsoft 365- Türkçe
Merhaba sayın cems,

Aşağıdaki kodu deneyiniz...

Kod:
Private Sub Worksheet_change(ByVal Target As Range)
If Intersect(Target, [A:A,H:H]) Is Nothing Then Exit Sub
On Error Resume Next
Target.Offset(0, 2).Value = Format(Now, "dd.mm.yyyy")
Target.Offset(0, 3).Value = Format(Now, "hh:mm:ss")
End Sub
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Sayın Cems,
Ekli dosyayı inceler misiniz?
Yapılan:
1. Gelir ve tutar kısmına veri girdiğinizde, bu satırdaki hücreler kendini kilitler.
2. Veri değişikliği yapmak istediğinizde, butonla şifre girmeniz gerekir. Veri girildikten hemen sonra hücre yine kilitlenir.
Deneyin, eklenecek bir şey varsa, yapmaya çalışalım.
 

Ekli dosyalar

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,529
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Hemen kontrol ediyorum , teşekkür ederim
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,529
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Sayın leumruk ;
Evet , tam olarak bulmaya çalıştığım uygulama buydu , gelir de gider de kendine ait 4 hücre dolunca kilitleniyor .
Bundaki amaç, şubelerden merkeze mail ile gelen , bir ay için 30 sayfalık kasa ( her gün daha ağırlaşıyor)nın daha hafif hale getirmek ve geriye doğru görülürlüğünü korumak ama 20 gün öncesine satır açılıp yeni veri girmesi ve bunun da bugüne kadar rakam değiştirmesini engellemekti.
Sanırım bu şekilde yeterli olacak. Düzeltme , şifreyi bilen merkezdeki yetkili tarafından yapılıp dosya geri gonderilebilecek.

Çok ama çok teşekkür ederim , gelen giden kasaların sağlığı hakkında önemli bir yardımınız oldu.
Denemeye devam edeceğim , belki şu an karşılaşmadığım bir konu ya da aşama vardır.Sizi bilgilendireceğim
Allah razı olsun sizden
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Rica ederim. Yardımcı olabildiysem ne mutlu. İyi çalışmalar.
 

cems

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

Denerken tarih değiştirip süzgeçle sadece bugünü görmek istedim , doğal olarak çalışmadı.
Süzgeci bir tarih için seçmek uğruna serbest bırakmak ne kadar mümkün ?

Ve ayrıca , bir tarihe göre süzünce başka bir hücrede (genel toplamın üstünde mesela) seçilen günün toplamını görmek mümkün mü
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Sayın Cems,
Koruma kodlarınızın protect kısımlarını bununla değiştirirseniz, listeniz serbest kalır.
Kod:
ActiveSheet.Protect Password:="12345", DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True, AllowFiltering:=True, AllowUsingPivotTables _
        :=True
Toplam konusunda şu an bir fikrim yok.
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,529
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Bir harikasınız leumruk :) çok teşekkür ederim

Süzüldüğünde gün toplamı için uğraşmaya devam edeceğim ama sanırım kayıtların eşit uzunlukta
olmayabileceği gibi bir açmazım var
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Bir harikasınız leumruk :) çok teşekkür ederim

Süzüldüğünde gün toplamı için uğraşmaya devam edeceğim ama sanırım kayıtların eşit uzunlukta
olmayabileceği gibi bir açmazım var
Estağfirullah, rica ederim.
O konuyla ilgili bir başlık gözüme çarpmıştı; ama şimdi hatırlamıyorum. Sanırım onu formülle halledebilirler.
O konuyu ayrı bir başlık olarak açarsanız, daha çabuk sonuç alırsınız. Formülden iyi anlayan arkadaşlar, sorunu çözecektir diye tahmin ediyorum.
İyi geceler.
 
Üst