Excel Vba Forum - Excelce.Net

SORU ve CEVAPLAR (Yazılabilir) => Microsoft Excel, Vba, Makro, Formül vb. Soruları => Konuyu başlatan: tsunamixxx - 19 Ekim 2011, 11:00:32

Başlık: Makro ile alakalı bir sorum var
Gönderen: tsunamixxx - 19 Ekim 2011, 11:00:32
Elimde 6 adet denklem var ( a,b,c,d,e,f diyelim ) ve bu denkler sağlanırsa bir değer, sağlanmazsa yanlış başka bir değer dönüyor.

> bu 6 adet denklemin

herhangi 3 ünün doğru sonucu vermesinde X değerini

herhangi 2 sinin doğru sonucu vermesinde Y değeri atamak istiyorum

Ama seçimleri de makronun yapmasını isiyorum yani "  6 denklemden herhangi 2 'sini seç True olup olmadığını sına" şeklinde.

aşağıda da ufak bir çalışma yaptım ama denklemler uzadıkça permütasyon sayısı artıyor;

Sub d()

Dim Olasılık1, Olasılık2, Olasılık3, Olasılık4, Olasılık5, Olasılık6

Olasılık1 = Cells(26, 13) > 2 And Sheets("FD002").Cells(53, 13) < 3 And Cells(62, 13) < 3 And Cells(44, 13) < 4
Olasılık2 = Cells(26, 13) > 2 And Sheets("FD002").Cells(53, 13) < 3 And Cells(62, 13) < 3 And Cells(45, 13) < 4
Olasılık3 = Cells(26, 13) > 2 And Sheets("FD002").Cells(53, 13) < 3 And Cells(44, 13) < 4 And Cells(45, 13) < 4
Olasılık4 = Cells(26, 13) > 2 And Sheets("FD002").Cells(53, 13) < 3 And Cells(44, 13) < 4 And Cells(45, 13) < 4
Olasılık5 = Cells(26, 13) > 2 And Sheets("FD002").Cells(53, 13) < 3 And Cells(44, 13) < 4 And Cells(45, 13) < 4
Olasılık6 = Cells(26, 13) > 2 And Sheets("FD002").Cells(53, 13) < 3 And Cells(44, 13) < 4 And Cells(45, 13) < 4

If Olasılık1 = True Or Olasılık2 = True Or Olasılık3 = True Then ( bu 1 adet seçim bunun gibi bir sürü seçim olasılığı oluşuyor)

MsgBox ("  iyileştirilme şartları sağlanmaktadır.")

Bu konuda bana yardımcı olabilir misiniz ?
Başlık: Ynt: Makro ile alakalı bir sorum var
Gönderen: Rami - 17 Kasım 2011, 22:56:45
Merhaba.

Aşağıdaki şekilde olabilir.

Kod: [Seç]
Sub d()

Dim Olasılık1, Olasılık2, Olasılık3, Olasılık4, Olasılık5, Olasılık6

Olasılık1 = Cells(26, 13) > 2 And Sheets("FD002").Cells(53, 13) < 3 And Cells(62, 13) < 3 And Cells(44, 13) < 4
If Olasılık1 = True Then A = A + 1
Olasılık2 = Cells(26, 13) > 2 And Sheets("FD002").Cells(53, 13) < 3 And Cells(62, 13) < 3 And Cells(45, 13) < 4
If Olasılık2 = True Then A = A + 1
Olasılık3 = Cells(26, 13) > 2 And Sheets("FD002").Cells(53, 13) < 3 And Cells(44, 13) < 4 And Cells(45, 13) < 4
If Olasılık3 = True Then A = A + 1
Olasılık4 = Cells(26, 13) > 2 And Sheets("FD002").Cells(53, 13) < 3 And Cells(44, 13) < 4 And Cells(45, 13) < 4
If Olasılık4 = True Then A = A + 1
Olasılık5 = Cells(26, 13) > 2 And Sheets("FD002").Cells(53, 13) < 3 And Cells(44, 13) < 4 And Cells(45, 13) < 4
If Olasılık5 = True Then A = A + 1
Olasılık6 = Cells(26, 13) > 2 And Sheets("FD002").Cells(53, 13) < 3 And Cells(44, 13) < 4 And Cells(45, 13) < 4
If Olasılık6 = True Then A = A + 1
If A < 3 Then MsgBox ("  iyileştirilme şartları sağlanamamaktadır.")
If A > 2 Then MsgBox ("  iyileştirilme şartları sağlanmaktadır.")
End Sub