• DİKKAT

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

sütuna tek veri girme...

Katılım
21 Eylül 2010
Mesajlar
31
Excel Vers. ve Dili
2016
Merhaba...bi çalışma tablo hazırlıyorum...ekteki örnekteki gibi günler var...kırmızı satırlar veri satırı...benim yapmaya çalıştığım
1-bir gün için yalnızca x y z satırlarında birine veri girilmesi....x için veri girildiğinde y ve z ye girilemeyecek veya y girilmişse diğerlerine girilemeyecek...
2-sarı satıra bi formül yazdım ama eksik...amacım o gün cumartesi veya pazarsa hücreye 1 değeri ataması...

yardımcı olursanız sevinirim..
 

Ekli dosyalar

Syn. Onurfesel;
Hafta sonu için aşağıdaki foksiyonu kullanın.
Kod:
=EĞER(HAFTANINGÜNÜ(C5;2)=6;1;EĞER(HAFTANINGÜNÜ(C5;2)=7;1;0))
Sorunuzun birinci kısmını tam olarak anaşılmıyor x,y,z derken 14,15,16. satırlarımı kast ediyorsunuz ?
 
Merhaba,
İsteğiniz makro kodlarıyla çözülebilir.
Aşağıdaki kodu Sayfa1'in kod bölümüne kopyalayın ve belirttiğiniz hücrelerde veri girişi yapın.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Son
If Intersect(Target, [c6:r8]) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Target.Row = 6 Then
If Target.Offset(1, 0) <> "" Or Target.Offset(2, 0) <> "" Then
MsgBox "Bu hücreye veri giremezsiniz.", vbCritical, "UYARI"
Target = ""
End If
ElseIf Target.Row = 7 Then
If Target.Offset(-1, 0) <> "" Or Target.Offset(1, 0) <> "" Then
MsgBox "Bu hücreye veri giremezsiniz.", vbCritical, "UYARI"
Target = ""
End If
ElseIf Target.Row = 8 Then
If Target.Offset(-1, 0) <> "" Or Target.Offset(-2, 0) <> "" Then
MsgBox "Bu hücreye veri giremezsiniz.", vbCritical, "UYARI"
Target = ""
End If
End If
Son:
Application.EnableEvents = True
End Sub
 
leumruk hocam dosyada değişiklik yaptım makroyuda değiştirdim ama komutlara hakim değilim offset komutu yanlış oldu onları düzeltirsen çok sevinirim...


Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Son
If Intersect(Target, [d6:ah17]) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Target.Row = 6 Then
If Target.Offset(1, 0) <> "" Or Target.Offset(2, 0) <> "" Then
MsgBox "Aynı gün için veri giremezsiniz.", vbCritical, "UYARI"
Target = ""
End If
ElseIf Target.Row = 7 Then
If Target.Offset(-1, 0) <> "" Or Target.Offset(1, 0) <> "" Then
MsgBox "Aynı gün için veri giremezsiniz.", vbCritical, "UYARI"
Target = ""
End If
ElseIf Target.Row = 8 Then
If Target.Offset(-1, 0) <> "" Or Target.Offset(-2, 0) <> "" Then
MsgBox "Aynı gün için veri giremezsiniz.", vbCritical, "UYARI"
Target = ""
End If
ElseIf Target.Row = 9 Then
If Target.Offset(-1, 0) <> "" Or Target.Offset(-2, 0) <> "" Then
MsgBox "Aynı gün için veri giremezsiniz.", vbCritical, "UYARI"
Target = ""
End If
ElseIf Target.Row = 10 Then
If Target.Offset(-1, 0) <> "" Or Target.Offset(-2, 0) <> "" Then
MsgBox "Aynı gün için veri giremezsiniz.", vbCritical, "UYARI"
Target = ""
End If
ElseIf Target.Row = 11 Then
If Target.Offset(-1, 0) <> "" Or Target.Offset(-2, 0) <> "" Then
MsgBox "Aynı gün için veri giremezsiniz.", vbCritical, "UYARI"
Target = ""
End If
ElseIf Target.Row = 12 Then
If Target.Offset(-1, 0) <> "" Or Target.Offset(-2, 0) <> "" Then
MsgBox "Aynı gün için veri giremezsiniz.", vbCritical, "UYARI"
Target = ""
End If
ElseIf Target.Row = 13 Then
If Target.Offset(-1, 0) <> "" Or Target.Offset(-2, 0) <> "" Then
MsgBox "Aynı gün için veri giremezsiniz.", vbCritical, "UYARI"
Target = ""
End If
ElseIf Target.Row = 14 Then
If Target.Offset(-1, 0) <> "" Or Target.Offset(-2, 0) <> "" Then
MsgBox "Aynı gün için veri giremezsiniz.", vbCritical, "UYARI"
Target = ""
End If
ElseIf Target.Row = 15 Then
If Target.Offset(-1, 0) <> "" Or Target.Offset(-2, 0) <> "" Then
MsgBox "Aynı gün için veri giremezsiniz.", vbCritical, "UYARI"
Target = ""
End If
ElseIf Target.Row = 16 Then
If Target.Offset(-1, 0) <> "" Or Target.Offset(-2, 0) <> "" Then
MsgBox "Aynı gün için veri giremezsiniz.", vbCritical, "UYARI"
Target = ""
End If
ElseIf Target.Row = 17 Then
If Target.Offset(-1, 0) <> "" Or Target.Offset(-2, 0) <> "" Then
MsgBox "Aynı gün için veri giremezsiniz.", vbCritical, "UYARI"
Target = ""
End If
End If
Son:
Application.EnableEvents = True
End Sub
 
Merhaba,
Örnek dosyanızı eklerseniz üzerinde deneyerek çalışmamız mümkün olur. Sanırım satır sayısı fazla bu durumda daha kısa bir kod yazmak mümkün olabilir. Örneği görmem mümkün olursa net bir şey söyleyebilirim.
 
D6 dan AH17 ye kadar olan alanda her gün sütununa sadece bir değer seçilebilsin, istiyoru, ve ya da girldiğinde uyarı yazısı çıksın..
 

Ekli dosyalar

Merhaba,
Aşağıdaki kodu kullanın.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Son
If Intersect(Target, [d6:ah17]) Is Nothing Then Exit Sub
Set Aralik = Range(Cells(6, Target.Column), Cells(17, Target.Column))
If WorksheetFunction.CountA(Aralik) > 1 Then
Application.EnableEvents = False
MsgBox "Bu hücreye veri giremezsiniz.", vbCritical, "UYARI"
Target = ""
Application.EnableEvents = True
End If
Son:
Application.EnableEvents = True
End Sub
 
çok teşekkür ederim...
 
Geri
Üst