- 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.
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
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:
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