• DİKKAT

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

Hücreye Değer Girmeye Çalışıldığında Sol Hücre Boşsa Uyarı Verme

Katılım
28 Haziran 2007
Mesajlar
168
Excel Vers. ve Dili
OFFİCE 2016 (Türkçe)
Merhabalar...

http://www.excel.web.tr/f47/hucrenin-solundaki-hucre-bo-ise-veri-girilemesin-t74330.html

adresindeki konuya benzer bi problemim var...

L12:L131 hücrelerine ancak değer girilmeye çalışılan hücre ile aynı satırdaki K hücresinin boş olması halinde değer girilememesini sağlamak istiyorum...

L12 hücresi için örnek veriyorum...

K12 hücresi boş ise L12'ye değer girilmeye çalışıldığında LÜTFEN K12 hücresine DEĞER GİRİNİZ... şeklinde uyarı vermesini ve değerin girilmesini engellemesini istiyorum...

Saygılarımla....
 
Merhaba;
Verdiğiniz linkteki kodları sayfanızın kod sayfasına;

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, [L12:L131]) Is Nothing Then GoTo atla
If ActiveCell.Offset(0, -1).Value = "" Then
MsgBox "K" & ActiveCell.Row & " HÜCRESİ DOLU OLMALI", , "EXCEL.WEB"
ActiveCell.Offset(0, -1).Select
End If
atla:
End Sub

Şeklinde uygularsanız aynı sonucu alırsınız.

iyi çalışmalar.
 
MUYGUN çok teşekkür ederim... Ancak şöyle bir sorunum var...
Verilen formül hücre seçili hale getirildiği an uyarı veriyor... Benim yapmak istediğim ise VERİDOĞRULAMA'daki gibi hücreye veri girilmeye çalışıldığında uyarı vermesini istiyorum...

Kod üzerinde düzenleme yapmaya çalıştım ancak başaramadım..

Bu şekilde yapabilirseniz sevinirim...

SAygılarımla... Kolaylıklar dilerim...
 
Sorum çok basit bir soru diye düşünüyorum...

Yok mu çözecek birileri...
 
Kodları bir de şu şekilde deneyin

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [L12:L131]) Is Nothing Then GoTo atla
If Target <> "" Then
If Target.Offset(0, -1).Value = "" Then
MsgBox "K" & Target.Row & " HÜCRESİ DOLU OLMALI", , "EXCEL.WEB"
Target.Select
Target = ""
End If
End If
atla:
End Sub
 
Kusura bakmayın... Verdiğiniz kod aynen işimi görecek olan kod... Ancak yine her zaman ki gibi eksik bilgi nedeni ile ben kodu uygulamayamıyorum...

Çalışma sayfamda;



Private Sub Worksheet_Change(ByVal Target As Range)
Dim Satır As Integer
If Intersect(Target, Range("k12:k131")) Is Nothing Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
If Target <> "" Then
Satır = Target.End(3).Row + 1
If Satır >= Target.Row Then Exit Sub
If Cells(Satır, Target.Column) = "" Then
Range(Cells(Satır, Target.Column), Cells(Target.Row - 1, Target.Column)) = CDate(Target)
Range("k12:k131").NumberFormat = "dd.mm.yyyy"
End If
End If
End Sub


kodu bulunmakta ve ben verdiğiniz kodu bu kod ile birleştiremedim....


Eğer ki uygulama imkanınız olursa sevinirim...


SAygılarımla....
 
Janveljan ve Muygun...

Kodu birleştirmeyi başardım...

Her ikinize de çok teşekkür ederim...

Ancak, bu kez de aşağıda anlattığım olay meydana geliyor...



Merhaba öncelikle yardımlarınız için teşekkür ederim…
Verdiğiniz kodları birleştirmek suretiyle aşağıdaki kodu oluşturdum…
Ancak aşağıdaki kodu veya yine aşağıda yer alan makroları çalıştırmayı denediğimde;

Run – Time Error “13”:
Type Mismatch

hatası alıyorum.
Hatanın nedenini ise kendim MAKROLARIN KODLARIN yazılı bulunduğu hücrelere başvuru yapması olarak düşünüyorum…

Hatanın alınması anında END yaptığımda herhangi bir sorun oluşturmuyor…
Ancak ben bu hatanın alınmamasını nasıl sağlayabilirim…

DEBUG yaptığımda ise aşağıdaki hatayı alıyorum…


Saygılarımla…


Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [L12:L131]) Is Nothing Then GoTo atla
If Target <> "" Then
If Target.Offset(0, -1).Value = "" Then
MsgBox "LÜTFEN ÖDEME TARİHİ BİLGİSİ GİRİNİZ...", , "Ödeme tarihi bilgisi boş olamaz..."
Target.Select
Target = ""
End If
End If
atla:
Dim Satır As Integer
If Intersect(Target, Range("K12:K131")) Is Nothing Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
If Target <> "" Then
Satır = Target.End(3).Row + 1
If Satır >= Target.Row Then Exit Sub
If Cells(Satır, Target.Column) = "" Then
Range(Cells(Satır, Target.Column), Cells(Target.Row - 1, Target.Column)) = CDate(Target)
Range("K12:K131").NumberFormat = "dd.mm.yyyy"
End If
End If
End Sub




Sub ODEMESİL()
'
' ODEMESİL Makro
' Makro HASAN BERA KULA tarafından 09.05.2012 tarihinde kaydedildi.
'

'
Range("K12:L131").Select
Selection.ClearContents
Range("F1").Select
End Sub




Sub YENİHESAP()
'
' YENİHESAP Makro
' Makro AB78461 tarafından 27.04.2012 tarihinde kaydedildi.
'

'
Range("K4").Select
Selection.ClearContents
Range("F1:F6").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-3
Range("K12:L131").Select
Selection.ClearContents
Range("K12").Select
Application.CutCopyMode = False
End Sub
 
Son düzenleme:
Hata CDate fonksiyonu ile ilgili, CDate(Target) dediğiniz yerde Target hücresindeki değerin tarih değeri olması gerekir, örnek dosya olursa daha rahat cevaplayabiliriz.
 
Geri
Üst