• DİKKAT

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

Belirli satır aralığına veri girmeden boş geçmesin.

Katılım
7 Eylül 2005
Mesajlar
112
Merhaba,

Ekli liste yapmak istediğim olay kısaca şudur.

Adı - Soyadı - Adres - Ev Numarası - İş Numarası - Cep Numarası - E-posta

Yukarıdaki başlıklar altına girilecek bilgiler (B1:H1) tümüne girilmeden diğer kayda geçemesin ve bunu da diğer 28 adet kayıtta yapsın.
 

Ekli dosyalar

Son düzenleme:
Burda yapmak istediğim şey,
B5:H5
B6:H6
B7:H7
B8:H8
B9:H9
B10:H10
....ta B30:H30 aralığına kadar bu kontrolün sağlanması
satır aralığına kesinlikle veri girdirmeden geçmemesi, eğer geçmeye çalışırsa uyarı verdirmek.
 
Son düzenleme:
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, [b5:h32]) Is Nothing Then Exit Sub
If ActiveCell.Offset(-1, 0) <> "" Then Exit Sub ' 1 hücre üstü dolu

If ActiveCell.Offset(-1, 0) = "" Then Beep
y = WorksheetFunction.CountA(ActiveSheet.Range("b4:b32")) ' yukarı aşşagı
x = Cells(y, 1).End(3).Row
Cells(y + 3, x + 2).Select

End Sub
 
Sn. snx111

Öncelikle ilginiz için teşekkürler.. ancak bunda benim tam istediğim olay olmuyor..
Örneğin B5:H5 aralığında eksik girince uyarı vermeden diğer hücrelerede veri girebiliyor.
 
Merhaba,

Ekli liste yapmak istediğim olay kısaca şudur.

Adı - Soyadı - Adres - Ev Numarası - İş Numarası - Cep Numarası - E-posta

Yukarıdaki başlıklar altına girilecek bilgiler (B1:H1) tümüne girilmeden diğer kayda geçemesin ve bunu da diğer 28 adet kayıtta yapsın.

Merhaba,

B5:H32 arasını fare ile seçip veri doğrulamaya girip özel bölümü seçin ve formül bölümüne,

Kod:
=BAĞ_DEĞ_DOLU_SAY($B$4:$H4)=SÜTUNSAY($B5:$H5)*SATIRSAY(B$5:B5)
yazın ve "hata uyarı" menüsünden "hata iletisini" yazıp tamam ile işlemi bitirin.
 
Sn. Ömer

Cevabınız için çok teşekkürler ama bunda da veri girip diğer hücreye gitmeye çalıştığınızdada uyarı veriyor..

Aslında ben bunu makro ile yapmak istiyorum.. Bu konuda yardımınızı rica etsem.
 
Deneyerek verdim, formül istediğinizi yapıyor.

Veri girdiğiniz satırın üst satırlarında girilmeyen veri varsa uyarı verir yoksa veri girişi sorunsuz gerçekleşir.

.
 
İşleyiş bu şekilde mi?

Eğer işleyişte hata varsa önce onu düzeltelim sonra makrosunu yazarız.
 
Bu alanlarda başka veri doğrulama kullanacağımdan.

Bu nedenle makro ile yazmak daha uygun ulanacağını düşünüyorum.
 
. . .

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim aa, hh
on error resume next
If Intersect(Target, [b5:h32]) Then
aa = Target.Row - 1
hh = WorksheetFunction.CountA(Range("b" & aa & ":h" & aa))

If hh = "7" Then
Else
MsgBox "hata"
End If: End If
End Sub

. . .
 
Merhaba..

Bu aşağıdaki iki makro nasıl birleştirebilirim ?

Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
If Target.Value <> "" Then
Target.Value = UCase(Replace(Replace(Target.Value, "i", "İ"), "ı", "I"))
End If
End Sub

========================================================================

Private Sub Worksheet_Change(ByVal Target As Range)
Dim aa, hh
On Error Resume Next
If Intersect(Target, [A5:H200]) Then
aa = Target.Row - 1
hh = WorksheetFunction.CountA(Range("A" & aa & ":H" & aa))
If hh = "10" Then
Else
MsgBox "Kaydı eksik girdiniz. Lütfen tamamlayınız..", vbCritical, "Hata"
End If: End If
End Sub
 
Deneme yapmadım.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim aa, hh
On Error Resume Next
If Target.Value <> "" Then
Target.Value = UCase(Replace(Replace(Target.Value, "i", "İ"), "ı", "I"))
End If
If Intersect(Target, [A5:H200]) Then
aa = Target.Row - 1
hh = WorksheetFunction.CountA(Range("A" & aa & ":H" & aa))
If hh = "10" Then
Else
MsgBox "Kaydı eksik girdiniz. Lütfen tamamlayınız..", vbCritical, "Hata"
End If: End If
End Sub
.
 
Sn. Ömer

Çok teşekkürler.. bende bu şekilde denedim ama msgbox kısmı defalarca geliyor. bu konuda ne yapabilirim ?
 
Eğer mesaj veriyorsa, doldurulmamış alan var demektir. ( Konu o yönde anlaşılmış ve çözülmüştür.)

Bence sorunuzu tekrar gözden geçirip detaylı açıklayınız. Lakin #11 numaralı mesajda benim size söylemek istediğim buydu fakat yanıt alamadım maalesef.
 
Makro tamam, ama sorun şu ben bunu uyguladığımda eğer hücre boşsa uyarı bir defa vermesi gerekir, ama bunnda öyle değil 50 den fazla aynı mesajı veriyor sen tamam dediğin halde.. sorun sadece bu..
 
Makro tamam, ama sorun şu ben bunu uyguladığımda eğer hücre boşsa uyarı bir defa vermesi gerekir, ama bunnda öyle değil 50 den fazla aynı mesajı veriyor sen tamam dediğin halde.. sorun sadece bu..

Merhaba
Anladığım şu msgbox hücre boş olduğunda çok defa çıkıyor bunu iptal edip tek sefer çıkmasını istiyorsunuz sanırım.
Syn : Ömer Hocanın kodunu
Kod:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim aa, hh
On Error Resume Next
Application.EnableEvents = False
If Target.Value <> "" Then
Target.Value = UCase(Replace(Replace(Target.Value, "i", "İ"), "ı", "I"))
End If
If Intersect(Target, [A5:H200]) Then
aa = Target.Row - 1
hh = WorksheetFunction.CountA(Range("A" & aa & ":H" & aa))
If hh = "10" Then
Else
MsgBox "Kaydı eksik girdiniz. Lütfen tamamlayınız..", vbCritical, "Hata"
End If: End If
Application.EnableEvents = True
End Sub
Bununla değiştirip deneyin.
Püf Nokta :
Application.EnableEvents = False
Application.EnableEvents = True
 
Geri
Üst