• DİKKAT

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

Bir dosyada iki farkli tarih kodu yazma

Katılım
21 Şubat 2013
Mesajlar
43
Excel Vers. ve Dili
2016 Türkçe 64bit
Merhaba sayin arkadaslar. Excel konusunda cok bilgi sahibi degilim, yeni basladim. Su an üzerinde oldugum bir is geregi bir dosyada iki farkli sütunda tarih atma kodu yazmam gerekiyor.

23. kolondaki hücrelerden birine birsey yazildiginda 19. sütunda, tam karsisina tarih atma (Stabil tarih, ertesi gün degismeyen) olayini asagidaki code ile hallettim.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Column <> 23 Then Exit Sub
   Cells(Target.Row, 19) = Date
End Sub

Fakat ayni dosya üzerinde, ayni islemi; 16. sütuna birsey yazildigi zaman 15. sütuna da tarih atacak sekilde tekrarlamam lazim. Ikinci makronun nasil girilecegi hakkinda da bir fikrim yok. Birincinin altina yazdim, calisir dedim calismadi. Bu durumu nasil halledebiliriz? Yardimlariniz icin simdiden tesekkürler, herkese iyi calismalar.
 
Son düzenleme:
Ekteki gibi denermisiniz (Birde yazılarınızı yazarken Koyu karakterle yapmassanız daha iyi olur.)


Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column <> 23 or Target.Column <> 16 Then Exit Sub

If Target.Column = 23 Then
Cells(Target.Row, 19) = Date
Elseif Target.Column=16 then
Cells(Target.Row, 15) = Date
end if
End Sub
 
Ekteki gibi denermisiniz (Birde yazılarınızı yazarken Koyu karakterle yapmassanız daha iyi olur.)


Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column <> 23 or Target.Column <> 16 Then Exit Sub

If Target.Column = 23 Then
Cells(Target.Row, 19) = Date
Elseif Target.Column=16 then
Cells(Target.Row, 15) = Date
end if
End Sub

Hocam tesekkür ederim cevap icin. Cok güzel bir kod ama calismadi malesef. Neden ben de anlamadim.
 
Merhaba,
Bir de bunu dener misiniz?
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [P:P, W:W]) Is Nothing Then Exit Sub
If Target.Value = "" Then Exit Sub
    If Target.Column = 16 Then
        Cells(Target.Row, 15) = Date
        Exit Sub
    Else
        Cells(Target.Row, 19) = Date
    End If
End Sub

Ayrıca Sayın Hüseyinkis'in kodundaki or sözcüğünü And yaparsanız çalışır.
 
Son düzenleme:
Merhaba,
Bir de bunu dener misiniz?
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [P:P, W:W]) Is Nothing Then Exit Sub
    If Target.Column = 16 Then
        Cells(Target.Row, 15) = Date
        Exit Sub
    Else
        Cells(Target.Row, 19) = Date
    End If
End Sub

Ayrıca Sayın Hüseyinkis'in kodundaki or sözcüğünü And yaparsanız çalışır.

Tesekkür ederim Hocam, oldu da, Hücreye birsey yazmasan bile, sadece cift tiklayip ciktigin zaman bile tarih atiyor. En azindan birsey yazildigi zaman mesela ok yazildigi zaman tarih atacak sekilde nasil ayarlayacaz bunu?
 
Son düzenleme:
Ekteki gibi denermisiniz bu sefer test ettim:)



Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [P:P, W:W]) Is Nothing Then Exit Sub
On Error Resume Next
    If Target.Column = 16 And Target.Value <> "" Then
        Cells(Target.Row, 15) = Date
        Exit Sub
    ElseIf Target.Value <> "" Then
        Cells(Target.Row, 19) = Date
'bu bölümden sonrası hücreyi temizlerseniz tarihide silmesi için geçerli kodlar istemesseniz bu alanı kaldırın.
    ElseIf Target.Column = 16 And Target.Value = "" Then
        Cells(Target.Row, 15) = ""
    ElseIf Target.Column = 23 And Target.Value = "" Then
        Cells(Target.Row, 19) = ""
'-----------------------------------------------------------------------------------------
    End If
End Sub
 
...Hücreye birsey yazmasan bile, sadece cift tiklayip ciktigin zaman bile tarih atiyor. En azindan birsey yazildigi zaman mesela ok yazildigi zaman tarih atacak sekilde nasil ayarlayacaz bunu?

4. mesajdaki kodu güncelledim.
 
---------------- Yanlış Konu altına yazıldı----------------------------
 
Geri
Üst