aktif vardiya saatini makro ile yazdırmak

Katılım
9 Ocak 2016
Mesajlar
12
Excel Vers. ve Dili
2010
merhaba;

ben excel dosyamda bir hücreye veri girdiğimde aynı satırdaki başka bir hücreye vardiya bilgisini atmak istiyorum.örnek olarak şu şekilde izah edeyim;

VRD1 08:00 - 16:00
VRD2 16:00 - 24:00
VRD3 24:00 - 08:00

bu üç vardiya seçeneğini o anki veri girildiğinde sistem saatine bakıp saat hangi aralığı denk geliyorsa o vrd bilgisini ilgili hücreye yazsın istiyorum.

not: veri silindiğinde ilgili hücrede temizlenirse hoş olur.
yardımcı olursanız sevinirim.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Hangi hücre değiştiğinde bu işlem yapılacak?
Bu hücrede nasıl bi değişiklik olduğunda bu işlem yapılacak?
Hangi hücreye bu bilgi işlenecek?


Örnek olarak aşağıdaki kodları ilgili sayfanın kod bölümüne (sayfa adına sağ tıklayıp Kod Görüntüle deyince açılan sayfaya) yapıştırıp denerseniz A2:A1000 aralığında değişiklik yaptığınızda yan hücreye vardiya yazar:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A2:A1000]) Is Nothing Then Exit Sub
If Target = "" Then
    Target.Offset(0, 1).ClearContents
Else
    If Hour(Now) < 8 Then
        Target.Offset(0, 1) = "VRD3"
    ElseIf Hour(Now) < 16 Then
        Target.Offset(0, 1) = "VRD1"
    Else
        Target.Offset(0, 1) = "VRD2"
    End If
End If
End Sub
 
Katılım
9 Ocak 2016
Mesajlar
12
Excel Vers. ve Dili
2010
Hangi hücre değiştiğinde bu işlem yapılacak?
Bu hücrede nasıl bi değişiklik olduğunda bu işlem yapılacak?
Hangi hücreye bu bilgi işlenecek?


Örnek olarak aşağıdaki kodları ilgili sayfanın kod bölümüne (sayfa adına sağ tıklayıp Kod Görüntüle deyince açılan sayfaya) yapıştırıp denerseniz A2:A1000 aralığında değişiklik yaptığınızda yan hücreye vardiya yazar:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A2:A1000]) Is Nothing Then Exit Sub
If Target = "" Then
    Target.Offset(0, 1).ClearContents
Else
    If Hour(Now) < 8 Then
        Target.Offset(0, 1) = "VRD3"
    ElseIf Hour(Now) < 16 Then
        Target.Offset(0, 1) = "VRD1"
    Else
        Target.Offset(0, 1) = "VRD2"
    End If
End If
End Sub
Bundan dolayı teşekkür etmeyi unuttum Yusuf bey çok teşekkür ederim.
 
Üst