Makro hatası ile ilgili acil 2 soru [Archive] - Excel Forum

PDA

Tüm Versiyonu Göster : Makro hatası ile ilgili acil 2 soru


mert25
31-08-2004, 12:55
Okullar yakında açılacak. Acizane ders dağıtım programı hazırladık. Ancak programla ilgili 2 sorunumuz var.
1- Programda ders çakışması olunca uyarı mesajı almak istiyoruz. Aşağıdaki kodu yazınca bazen çalışmıyor, bazen ise her hücrede uyarı mesajı veriyor.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Range("B1") > 1 Then MsgBox "Çakışma Var"
End Sub


2- Ders ataması yapılırken herhangi bir ders haftalık ders sayısından fazla ya da eksik yazılırsa uyarı mesajı gelsin istiyoruz. Ã?rneğin J4:S9, J13:S18, AB4:AK9, AB13:AK18 arasına dersler yazılıyor. Bu alanlara bakılarak uyarı mesajı verilecek. Bununla ilgili nasıl bir makro yazılabilir? Ya da yazılabilir mi? Çok acele lazım. Yardımcı olacaklara şimdiden teşekkürler.

hamitcan
31-08-2004, 13:52
1-ilgili hücre aralıklarını seçin
2-veri doğrulamaya girin
3-tüm sayıyı seçin
4-ders sayısı en az kaç ise enaz kısmına en fazla kaç ise enfazla kısmına
yaz

Not: aralık içindeki kalan kısım izin verilen ders sayısını gösterir.

İyi çalışmalar

mert25
31-08-2004, 14:19
Sorumu galiba tam açamamışım. J4:S9, J13:S18, AB4:AK9, AB13:AK18 hücre aralıklarına Türkçe, Matematik, Fen Bilgisi vb ders adları yazılıyor. İstediğim J4:S9 aralığında Matematik dersi 4 defadan fazla yazılmışsa hata iletisi alayım.

karakıþ
31-08-2004, 17:17
.1-cevap
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
If Target.Value = 5 Then
MsgBox "çakışma"
End If
End If
End Sub

2-Private Sub Worksheet_Change(ByVal Target As Range)
Dim m As Integer
m = WorksheetFunction.CountIf(Range("a1:k10"), "matematik")
If m > 5 Then
MsgBox "matematik dersinin saysı artmıştır"
Else
MsgBox b
End If
End Sub

mert25
01-09-2004, 08:41
Sayın Karakış, kodlarınızı aşağıdaki gibi uygulamaya çalıştım. Fakat hata verdi.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim m As Integer
m = WorksheetFunction.CountIf(Range("J4:S9,J13:S18,AB4:AK9, AB13:AK18 "), "matematik")
If m > 4 Then
MsgBox "matematik dersinin saysı artmıştır"
End If
End Sub

Ãu hatayı veriyor:
Run-time error '1004':
WorksheetFunction sınıfının countIf özelliği alınamıyor

Yardımlarınızı bekliyorum.

karakıþ
01-09-2004, 09:47
Sayın mert

o alanı seçerseniz sorun kalmaz
b=worksheetFunction.Countıf(Range("j4:ak28"),"matematik")

okuldaki internetten bağlandığım için biraz kısa oldu

mert25
01-09-2004, 10:15
dediğiniz doğruymuş. Peki aynı alanda diğer dersleri nasıl saydırmam lazım acaba. Ã?rneğin Türkçe, Fen Bilgisi, Sosyal Bilgiler.....

Haluk
01-09-2004, 10:34
@mert25:

Anladığım kadarıyla ikinci sorunda belli bir alanda 4 adetten fazla aynı veri girildiğinde hata mesajı almak istiyorsun. Bu durumda konuyla ilgili olarak ben sana şöyle bir çözüm önereyim;

1) Ders adlarının olduğu J4:S9 alanını fare ile seç,

2) Bu alan seçili durumdayken Excel'in menülerinden Data >> Validation ( Veri >> Doğrulama) seç,

3) Karşına gelecek pencerede Settings (Ayarlar) sekmesinde Allow (İzin Verilen) kutusunda Custom (İsteğe özel) seç ve aşağıdaki Formula (Formul) kutusuna tıkladıktan sonra bu kutuya aşağıdaki formulü olduğu gibi yaz;

=COUNTIF($J$4:$S$9;J4)<5

Eğer Türkçe Office kullanıyorsan aşağıdaki formulü kullan;

=EÃERSAY($J$4:$S$9;J4)<5

4) Sözkonusu pencereyi onaylayarak kapat.

5) Ãimdi, yukarıda bahsedilen J4:S9 aralığında herhangibir veriyi 4 defadan fazla yazmaya çalıştığında, Excel seni otomatik olarak uyaracak ve veri girişine izin vermeyecektir.

Not: Yukarıda 3ncü madde deki işlemleri yaparken eğer istersen kendi hata mejını da yazabilirsin, işin burası çok da önemli değil....

Haluk
01-09-2004, 14:10
@mert25:

Sorununuzun acil olduğundan bahsetmiştiniz, biz de mümkün olduğunca veya anlayabildiğimiz kadarıyla "acil" olarak cevapladık.

Ama sorununuz çok acil değilmiş herhalde ki, son cevabın işinize yarayıp yaramadığı konusunda bir mesaj yazmadınız.

mert25
02-09-2004, 12:56
Sayın Raider kusura bakmayın biraz geç oldu. Veri Doğrulama ile hallettim. Biraz zor oldu ama olsun. İlginize Teşekkür ederim.

Haluk
02-09-2004, 12:58
......... İlginize Teşekkür ederim.

Rica ederim :keyif:

Ek: Bildiğim kadarıyla bu sitede herhangibir kısıtlama yok. İstediğiniz zaman soru sorabilir, cevap verebilir veya cevap alabilirsiniz.

beta12
15-11-2009, 01:18
Programı ekte sunamaz mısınız?
Bizde faydalanalım.


Özel Arama