O anın tarihini otomatik yazdırma

Katılım
22 Kasım 2008
Mesajlar
50
Excel Vers. ve Dili
excel 2003
LÜTFEN ACİL YARDIM!....[/B]A1 hücresine bugün bir herhangi bir veri girdiğimizde o anın tarihini B1 e, ertesi gün
A2 hücresine herhangi bir veri girdiğimizde o anın tarihini B2 ye nasıl otomatik yazdırabilirim.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Çalışma sayfasının kod bölümüne yapıştırınız.:cool:
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
On Error Resume Next
Target.Offset(0, 1).Value = Date
Target.Offset(0, 1).NumberFormat = "dd.mm.yyyy"
End Sub
 
Katılım
22 Kasım 2008
Mesajlar
50
Excel Vers. ve Dili
excel 2003
Çalışma sayfasının kod bölümüne yapıştırınız.:cool:
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
On Error Resume Next
Target.Offset(0, 1).Value = Date
Target.Offset(0, 1).NumberFormat = "dd.mm.yyyy"
End Sub
Harikasın TEŞEKKÜRLER. Peki istediğimiz hücre A1 i B1 e değilde A3 e veri girdiğimizde B5 e tarih artı saat yazmasını istersek nasıl olur kod?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,604
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Sadece A3 hücresi için aşağıdaki kodu kullanabilirsiniz.

Kod:
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [A3]) Is Nothing Then Exit Sub
    [B5] = Now
End Sub
 
Katılım
22 Kasım 2008
Mesajlar
50
Excel Vers. ve Dili
excel 2003
Koddaki tarihi, tarih ve saat olarak yazması için ne yapmalı?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,604
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

B sütununu genişletirseniz saat kısmınıda görebilirsiniz.
 
Katılım
22 Kasım 2008
Mesajlar
50
Excel Vers. ve Dili
excel 2003
Sevgili Korhan Ayhan ilgine teşekkürler ama malesf olmuyor? Artı Exceli kapatıp açtığımda yeni veri girince bırak saati tarih bile yazmıyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,604
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Ekteki örnek dosyayı incelermisiniz.
 

Ekli dosyalar

Katılım
22 Kasım 2008
Mesajlar
50
Excel Vers. ve Dili
excel 2003
Sorun benden kaynaklanıyormuş. Hücre biçimlendir/sayı/Tarih biçimini sadece tarih seçmişim. Ve güvenlik düzeyini düşüğe ayarlamamışım.
Peki bu işlemin fonksiyon olarak bi formülü yokmuydu. Cevaplamasanda yardımların için sonsuz teşekkürler...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,604
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Tabiki fonksiyonlu çözümü var. Fakat fonksiyonun ürettiği değer sabit kalmayacaktır. Bu şekildede sizin işinize yaramayacaktır.

B5 hücresine bu formülü yazarsanız istediğiniz sonuca ulaşırsınız.
Kod:
=EĞER(A3>0;ŞİMDİ();"")
Fakat sistem tarihi değiştiğinde B5 hücresindeki tarihte değişecektir. Sanırım siz değişken olmasını istemiyorsunuz.
 
Katılım
22 Kasım 2008
Mesajlar
50
Excel Vers. ve Dili
excel 2003
Selamlar,

Tabiki fonksiyonlu çözümü var. Fakat fonksiyonun ürettiği değer sabit kalmayacaktır. Bu şekildede sizin işinize yaramayacaktır.

B5 hücresine bu formülü yazarsanız istediğiniz sonuca ulaşırsınız.
Kod:
=EĞER(A3>0;ŞİMDİ();"")
Fakat sistem tarihi değiştiğinde B5 hücresindeki tarihte değişecektir. Sanırım siz değişken olmasını istemiyorsunuz.
Evet ben sadece yeni veri girildiğinde değişmesini istiyorum. Ha bide A1 in tarihini B1 e A2 nin tarihini B2 ye A3 ü B3 e..gibi yazmasını istedim ama kodu değiştirmeyi başaramadım. Ne yapalım işte acemilik zor iş.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Aşağıdaki kodu kullanınız.Öncekini siliniz.:cool:
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
On Error Resume Next
Target.Offset(0, 1).Value = Now
Target.Offset(0, 1).NumberFormat = "dd.mm.yyyy hh:mm:ss"
End Sub
 

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 Evren Gizlen

Sayın tocy41'in sorusu ile tıpatıp aynı , hatta ilk kademede çözümüm dahi olduğu , ancak bir ileri adımı sormak gerektiği için ayrı başlık yerine burada soruya devam etmek istedim. Verdiğiniz kodlar ile gelir sütununda ( a sütununa giriş olunca) GELİR ACIKLAMA -RAKAM-TARİH-SAAT şeklinde yazdırdım.Ancak aynı sayfada olan gider sütununa ,(g sütununa giriş olunca) buna ait
GİDER AÇIKLAMA-TARİH-SAAT şeklinde ve gelir kısmından münferit olarak yazdırmak için kodlarınızda nasıl bir düzenleme yapmak gerekir ?
Saygılarımla ,

Option Explicit

Private Sub Worksheet_change(ByVal Target As Range)

If Intersect(Target, [a:a]) 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"

If Intersect(Target, [g:g]) Is Nothing Then Exit Sub
On Error Resume Next
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
 

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
Hala çözmeye çalışıyorum ...Bir yerde hata yapıyorum ama nerde ...
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Bu şekilde deneyin,
Kod:
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
 

Ayhan Ercan

Özel Üye
Katılım
10 Ağustos 2005
Mesajlar
1,571
Excel Vers. ve Dili
Microsoft 365- Türkçe
Bu şekilde deneyin,
Kod:
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
Sayın leumruk,
Vermiş olduğunuz kodları denedinizmi?

Kodlarınızda "a:a" ile "g:g" aynı anda kesiştirmişsiniz.
Dolayısıyla

Target.offset(0,2) ile
Target.offset(0,6) sırasında her "a" sütunu ve "g" sütunu aynı zamanda çalışacaktır. Dolayısıyla istenen sonuca gidemeyeceksiniz.

**Önce "a" sütuna bakacak varsa offset(0,2) ve offset(0,3) işlenecek.
**offset(0,6) ile offset(0,7) "g" sütununu ilgilendiriyor.

Aşağıdaki kodu deneyiniz..

Kod:
Private Sub Worksheet_change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, [a:a]) Is Nothing Then GoTo sonraki
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"
sonraki:
If Intersect(Target, [g:g]) Is Nothing Then Exit Sub
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
 

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 leumruk,

Önce uslubumun yalnış anlaşılabilirliğini gördüğüm için sizden özür diliyorum.
Ama inanın amacım bazen ufacık olup görünmeyen şeylerin gidilecek yolda kocaman engel olarak karşımıza çıkmakta olduğunu belirtmek ve sizi biraz daha dikkate davet etmekti. Dediğim gibi uslubumden dolayı sizi rahatsız ettiysem tekrar tekrar özür dilerim.

Ayrıca kodda kesiştirmeyi "a:a,g:g" ile aynı anda da yapmak mümkün. Bu sefer Target (hedef hücreleri) ayırarak (ben if blogu ile düşündüm) sonuca gidilebilinir.

Aşağıdaki kodu inceleyiniz...

Kod:
Private Sub Worksheet_change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, [a:a,g:g]) Is Nothing Then Exit Sub
[COLOR=royalblue]If Target.Column = 1 Then[/COLOR]
    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"
[COLOR=royalblue]ElseIf Target.Column = 7 Then[/COLOR]
    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 If
End Sub
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
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, [COLOR="Red"]2[/COLOR]).Value = Now
    Target.Offset(0, [COLOR="red"]2[/COLOR]).NumberFormat = "dd.mm.yyyy"
    Target.Offset(0, [COLOR="red"]3[/COLOR]).Value = Now
    Target.Offset(0, [COLOR="red"]3[/COLOR]).NumberFormat = "hh:mm:ss"
End If
End Sub
 
Son düzenleme:
Üst