• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

if statement yardımı

Katılım
19 Temmuz 2013
Mesajlar
2
Excel Vers. ve Dili
Türkçe
Merhaba. Excel de ilk defa code yazıyorum. Kodum şöyle
Sub coefficients()
Dim a_coeff, b_coeff As Double
Worksheets("Sheet1").Activate
Column("O").Range

If Column("O") >= 2.5 Then x = (Tdb) + (e_ - es) / (0.000662 * pressure)
Else

If Column("O") < 0.5 And Column("O") = 0.5 Then a_coeff = 0.0012
If Column("O") > 1 And wind = 1 And Column("O") < 1.5 And Column("O") = 1.5 Then a_coeff = 0.0008


If Column("O") > 1.5 And Column("O") < 2.5 Then a_coeff = 0.000656

If Column("O") > 0 And Column("O") < 2.5 Then b_coeff = 610

x = (-(b_coeff - Tdb) + ((b_coeff - Tdb) ^ 2 - 4 * 1 * ((e_ - es) / (-a_coeff * pressure) - Tdb)) ^ 1 / 2) / 2 * 1

End Sub

İnternetten baka baka birşeyler yapmaya çalıştım ama pek başarılı olamadım. Kodumun worksheet 1'in "O" column unun 17. rowun dan başlayarak tek tek verileri almasını ve a_coeff ve b_coeff leri hesaplayarak excel sheetinde x column ı oluşturmasını istiyorum. ama worksheeti aktif yapabildim mi ve o column ı nasıl macro anlayabilir bunları bilmiyorum. Yardımlarınız için şimdiden sonsuz teşekkür ediyorum.
 
Merhaba,

Sizin için basit bir dosya hazırladım.

O sütununun 17. satırından itibaren sonuna kadar okur ve O sütunundaki değeri 2 ile çarparak karşılığındaki X sütununa yazar. Umarım sizin için açıklayıcı olur ve kendi yapınıza uyarlayabilirsiniz.

Kod:
Sub Hesapla()
 
    Dim i   As Long
    Dim Sat As Long
 
    Sat = Cells(Rows.Count, "O").End(3).Row
    If Sat < 17 Then Sat = 17
 
    For i = 17 To Sat
        Cells(i, "X") = Cells(i, "O") * 2
    Next i
 
End Sub
 

Ekli dosyalar

Çok çok teşekkür ediyorum çok yardımı dokundu.Şu anda kodum böyle. Yalnız wind,pressure ve Tdb değerlerinin worksheet ten almasını nasıl sağlayabilirim? Bir de sanırım for içinde if döngüsü biraz problemli oldu. yapmak istediğim önce wind değerlerine bakıp 2.5 ve üstüyse ilk x denklemini değilse a ve b değerleri atayıp ikinci x denklemini çalıştırmak. Tekrar teşekkürler.

Sub Hesapla()

Dim i As Long
Dim Sat As Long

Sat = Cells(Rows.Count, "wind").End(3).Row
If Sat < 17 Then Sat = 17

For i = 17 To Sat

If Cells(i, "wind") >= 2.5 Then
x = (Tdb) + (e_ - es) / (0.000662 * pressure)
Else

If Cells(i, "wind") <= 0.5 Then
a_coeff = 0.0012
ElseIf Cells(i, "wind") >= 1 And Cells(i, "wind") <= 1.5 Then
a_coeff = 0.0008
ElseIf Cells(i, "wind") > 1.5 And Cells(i, "wind") < 2.5 Then
a_coeff = 0.000656

x = (-(b_coeff - Cells(i, "Tdb")) + ((b_coeff - Cells(i, "Tdb")) ^ 2 - 4 * 1 * ((Cells(i, "e_") - Cells(i, "es")) / (-a_coeff * Cells(i, "pressure")) - Cells(i, "Tdb"))) ^ 1 / 2) / 2 * 1
End

Next i

End Sub
 
Geri
Üst