Koşula Bağlı Zorunlu Veri Girişi

Katılım
9 Aralık 2010
Mesajlar
6
Excel Vers. ve Dili
Office 2007
Merhabalar,

Excelde bir çalışma sayfasında örneğin: A22,B22,C22 hücresine girilen toplam değer 0'dan büyük ve E22 Hücresine bir değer girilmemişse o zaman sayfada herhangi bir hücreye tıkladığımda buna izin vermesin ve "PROJE BİLGİSİ GİRİLMELİDİR." uyarısı versin istiyorum. Aslında bunu sadece A22,B22,C22,E22 hücrelerini (22.satırı) kullanarak yaptım.Ama tüm A,B,C,E sütunları için aynı hesaplamayı yapmalı yani (A23+B23+C23)>0 ve E23="" ise uyarı vermeli ve bunu aşağıya doğru her satır için ayrı ayrı yapmalı.

Döngü söz konusu olmadığında sorgu gayet güzel çalışıyor. Sadece 22.satır için yazdığım ve çalışan sorgu aşağıdadır.


Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Windows("Haftalık Ödeme Planı Listesi (Merkez) (Yeni).xlsm").Activate
Worksheets("Pano").Select
If (((Range("A22").Value + Range("B22").Value + Range("C22").Value) <> 0) And ((Range("E22").Value) = "")) Then
MsgBox ("(" + Range("BR22").Value + ") PROJE BİLGİSİ GİRİLMELİDİR.")
Windows("Haftalık Ödeme Planı Listesi (Merkez) (Yeni).xlsm").Activate
Worksheets("Pano").Select
Range("E22").Select
Else
End If
End Sub



Ancak aşağıda döngü yapmaya çalıştığımda bunu yapamıyorum.Aşağıdaki kod çalışmıyor.A,B veya C sütunlarındaki bir hücreye bir tutar girdiğim an, hata alıyorum. Beni IF ile başlayan satıra yönlendiriyor.Sizce doğru kod nasıl olmalıdır?:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Integer
Windows("Haftalık Ödeme Planı Listesi (Merkez) (Yeni).xlsm").Activate
Worksheets("Pano").Select
For i = 22 To 3000
If (((Range("A" & i).Value + Range("B" & i).Value + Range("C" & i).Value) <> 0) And ((Range("E & i").Value) = "")) Then
MsgBox ("(" + Range("BR" & i).Value + ") PROJE BİLGİSİ GİRİLMELİDİR.")

Windows("Haftalık Ödeme Planı Listesi (Merkez) (Yeni).xlsm").Activate
Worksheets("Pano").Select
Range("E" & i).Select
Else
End If
Next i
End Sub
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

İstediğiniz bu mu?

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    Dim i As Long, a As Double
    
    For i = 22 To 3000
        a = Cells(i, "A") + Cells(i, "B") + Cells(i, "C")
        If a <> 0 And Cells(i, "E") = "" Then
            MsgBox i & " 'nci. SATIRA, PROJE BİLGİSİ GİRİLMELİDİR"
            Exit Sub
        End If
    Next i
    
End Sub
.
 
Katılım
9 Aralık 2010
Mesajlar
6
Excel Vers. ve Dili
Office 2007
Üstadım zaman ayırdığınız için çok teşekkür ederim.
Ancak bir önceki benim yazdığım kodla aynı hatayı veriyor.Type mismatch diyor.
ve Ekteki gibi hata veriyor.
 

Ekli dosyalar

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
İlgili 3 sütun yani a-b-c sütunlarında sayı dışında veri var mı ?
Çünkü toplama işlemi yaptığından sayı olmayan veri varsa hata alırsınız.

Konuyla ilgili daha fazla bilgi vermenizi rica ederim.
 
Katılım
9 Aralık 2010
Mesajlar
6
Excel Vers. ve Dili
Office 2007
Ömer Bey,
İlginize çok teşekkür ederim. İşte bazı şeyler gözden kaçıyor binlerce satır arasından bir tanesinde aynen bahsettiğiniz gibi 1 boşluk varmış. Type Mismatch'ten anlamalıydım. Şu an sorun çözüldü. Tecrübe çok önemli sanıyorum bu işte. Tekrar teşekkür ederim. İyi günler.
 
Üst