Birkaç Koşula Göre Değer Atama Ve Hesaplama

24/01/2019, 10:05

xctr

Günaydın
Dernekler-Takımlar arası yapılan BALIKAVI yarışmalarında kullanmak üzere yapmaya çalıştığımız bir progamdır.
Düşünülen çalışma şekli.
Listeden seçilen balık türüne göre değerler alınıyor.
Eğer listedeki türlerden biri ise ve ölçülen boy limit boya eşit veya büyükse ,DURUM "GEÇERLİ" kabul ediliyor ve PUAN=BOY+10 olarak hesaplanacak
Eğer listedeki türlerden biri ama ölçülen boy limit boydan küçükse DURUM "LİMİTALTI" olarak kabul ediliyor ve  PUAN=BOY+1 olarak hesaplanacak
Üçüncü seçenek tür liste dışı ise DİĞER olarak seçiliyor ÖLÇÜM boyu etkisizleşiyor ve PUAN=5 olarak kabul ediliyor.
Bir kısmını yapabildim ancak bu şartlara göre formüle etme veya ifade oluştuma kısmını beceremedim.
Benzer örneklerden yola çıkıp yapmaya çalıştım ama maalesef olmadı.
Cumartesi günü bir yarışmada kullanamaya başlamak düşüncesindeyiz.
Yardımcı olabileceklere şimdiden teşekkür ederiz.
Saygılarımızla.
24/01/2019, 10:44

ozanakkaya

Merhaba, Forma hesaplama için kod ekledim, mesajınızda belirttiğiniz hususlara göre hesaplamayı yapar. Ancak, sondaki çarpan vs kısımdaki hesaplama ile ilgili fikrim olmadığı için bu kısım hesaplamaya dahil edilmemiştir.

İnceleyip olumlu/olumsuz bildirimde bulununuz.
24/01/2019, 11:02

xctr

(24/01/2019, 10:44)ozanakkaya yazdı: Merhaba, Forma hesaplama için kod ekledim, mesajınızda belirttiğiniz hususlara göre hesaplamayı yapar. Ancak, sondaki çarpan vs kısımdaki hesaplama ile ilgili fikrim olmadığı için bu kısım hesaplamaya dahil edilmemiştir.

İnceleyip olumlu/olumsuz bildirimde bulununuz.

Öncelikle ilginiz için teşekkür ederim.
GEÇERLİ-LİMİT ALTI Belirtilemsi ksımı tamam.
Ama PUANI hesaplamada biraz daha açıklama yazmam gerekecek sanırım.

Örnek1 :Çipura 22cm
GEÇERLİ
22CM Boy+10 Puan =32 PUAN

örnek2:Çipura 17cm
LİMİT ALTI
17cm Boy+1 Puan=18 Puan

Örnek3:Çipura 18cm (LİmitBoya eşit)
18cm Boy+10 Puan=28 Puan


Örnek4 Durum GEÇERLİ , Puan SABİT ve Puan=5

Geçerli ve Listede olan balıklarda PUAN=BOY+10

Limitaltı ve listede olan balıklarda PUAN=BOY+1

DİĞER olması durumunda BOY önemli değil GEÇERLİ ama PUAN SABİT 5 puan 

Faydalı olurmu acaba.
Teşekkürler
24/01/2019, 11:20

ozanakkaya

Örnek uygulamayı tekrar test ettiğimde sadece DİĞER ile ilgili sorun vardı, 

ilgili kodu aşağıdaki ile değiştirerek deneyiniz.

Sub Hesapla()

Dim GBalik As String
Dim GPuan, GBoy As Integer

GPuan = Me.BALIK.Column(3)
GBoy = Me.BALIK.Column(2)
GBalik = Me.BALIK.Column(1)

Me.BOY = GBoy

If GBalik <> "DİĞER" And Val(Me.ÖLÇÜM) >= GBoy Then

   Me.Metin19 = "GEÇERLİ"
   Me.PUAN = Me.ÖLÇÜM + 10

ElseIf GBalik <> "DİĞER" And Me.ÖLÇÜM.Value < GBoy Then

   Me.Metin19 = "LİMİTALTI"
   Me.PUAN = Me.ÖLÇÜM + 1

ElseIf GBalik = "DİĞER" Then
   Me.Metin19 = "DİĞER"
   Me.PUAN = 5

End If

End Sub
24/01/2019, 11:26

xctr

(24/01/2019, 11:20)ozanakkaya yazdı: Örnek uygulamayı tekrar test ettiğimde sadece DİĞER ile ilgili sorun vardı, 

ilgili kodu aşağıdaki ile değiştirerek deneyiniz.

Sub Hesapla()

Dim GBalik As String
Dim GPuan, GBoy As Integer

GPuan = Me.BALIK.Column(3)
GBoy = Me.BALIK.Column(2)
GBalik = Me.BALIK.Column(1)

Me.BOY = GBoy

If GBalik <> "DİĞER" And Val(Me.ÖLÇÜM) >= GBoy Then

   Me.Metin19 = "GEÇERLİ"
   Me.PUAN = Me.ÖLÇÜM + 10

ElseIf GBalik <> "DİĞER" And Me.ÖLÇÜM.Value < GBoy Then

   Me.Metin19 = "LİMİTALTI"
   Me.PUAN = Me.ÖLÇÜM + 1

ElseIf GBalik = "DİĞER" Then
   Me.Metin19 = "DİĞER"
   Me.PUAN = 5

End If

End Sub

Deneyip bilgi vereceğim,teşekkürler
24/01/2019, 14:05

xctr

Çok teşekkür ederim , tam istediğimiz gibi oldu Adana-Mersin-Tarsus-OSmaniye den değişik grup ve derneklerdeki arkadaşlarım adına teşekkür ederiz.
Saygı ve Selamlar