- Katılım
- 12 Ağustos 2021
- Mesajlar
- 6
- Excel Vers. ve Dili
- vba
- Altın Üyelik Bitiş Tarihi
- 12-08-2022
VBA da çok yeniyim. Modeller bakarak bir formül yazdım ama hücreler arası geçişi çok yavaşlattı. Bir arkadaş yardımcı olabilirse çok sevinirim.
Program da yapmak istediğim şey şu şekilde. Bir sayfa da öğrenci isimleri ve bunların deneme doğru yanlış ve netleri var. Hücreler doğru yanlış girilmeden netler hesaplansın istemiyorum. Doğru yanlış girilince netler ve bu netlerin toplamları hesaplansın istiyorum. Çok ağır gidince son toplamı yarım bıraktım.
Private Sub CommandButton1_Click()
Sayfa1.Select
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Integer
Dim k As Integer
For i = 4 To 53
For k = 0 To 500 Step 21
If Sayfa4.Cells(k + 5, i) <> "" Then
Sayfa4.Cells(k + 5, i) = Sayfa4.Cells(k + 3, i) - Sayfa4.Cells(k + 4, i) / 3
Else
Sayfa4.Cells(k + 5, i) = ""
End If
If Sayfa4.Cells(k + 8, i) <> "" Then
Sayfa4.Cells(k + 8, i) = Sayfa4.Cells(k + 6, i) - Sayfa4.Cells(k + 7, i) / 3
Else
Sayfa4.Cells(k + 8, i) = ""
End If
If Sayfa4.Cells(k + 11, i) <> "" Then
Sayfa4.Cells(k + 11, i) = Sayfa4.Cells(k + 9, i) - Sayfa4.Cells(k + 10, i) / 3
Else
Sayfa4.Cells(k + 8, i) = ""
End If
If Sayfa4.Cells(k + 14, i) <> "" Then
Sayfa4.Cells(k + 14, i) = Sayfa4.Cells(k + 12, i) - Sayfa4.Cells(k + 13, i) / 3
Else
Sayfa4.Cells(k + 14, i) = ""
End If
If Sayfa4.Cells(k + 17, i) <> "" Then
Sayfa4.Cells(k + 17, i) = Sayfa4.Cells(k + 15, i) - Sayfa4.Cells(k + 16, i) / 3
Else
Sayfa4.Cells(k + 17, i) = ""
End If
If Sayfa4.Cells(k + 20, i) <> "" Then
Sayfa4.Cells(k + 20, i) = Sayfa4.Cells(k + 18, i) - Sayfa4.Cells(k + 19, i) / 3
Else
Sayfa4.Cells(k + 20, i) = ""
End If
If Sayfa4.Cells(k + 23, i) <> "" Then
Sayfa4.Cells(k + 23, i) = Sayfa4.Cells(k + 21, i) - Sayfa4.Cells(k + 22, i) / 3
Else
Sayfa4.Cells(k + 23, i) = ""
End If
Sayfa4.Cells(k + 21, i) = Sayfa4.Cells(k + 3, i) + Sayfa4.Cells(k + 6, i) + Sayfa4.Cells(k + 9, i) + Sayfa4.Cells(k + 12, i) + Sayfa4.Cells(k + 15, i) + Sayfa4.Cells(k + 18, i)
Next k
Next i
End Sub
Program da yapmak istediğim şey şu şekilde. Bir sayfa da öğrenci isimleri ve bunların deneme doğru yanlış ve netleri var. Hücreler doğru yanlış girilmeden netler hesaplansın istemiyorum. Doğru yanlış girilince netler ve bu netlerin toplamları hesaplansın istiyorum. Çok ağır gidince son toplamı yarım bıraktım.
Private Sub CommandButton1_Click()
Sayfa1.Select
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Integer
Dim k As Integer
For i = 4 To 53
For k = 0 To 500 Step 21
If Sayfa4.Cells(k + 5, i) <> "" Then
Sayfa4.Cells(k + 5, i) = Sayfa4.Cells(k + 3, i) - Sayfa4.Cells(k + 4, i) / 3
Else
Sayfa4.Cells(k + 5, i) = ""
End If
If Sayfa4.Cells(k + 8, i) <> "" Then
Sayfa4.Cells(k + 8, i) = Sayfa4.Cells(k + 6, i) - Sayfa4.Cells(k + 7, i) / 3
Else
Sayfa4.Cells(k + 8, i) = ""
End If
If Sayfa4.Cells(k + 11, i) <> "" Then
Sayfa4.Cells(k + 11, i) = Sayfa4.Cells(k + 9, i) - Sayfa4.Cells(k + 10, i) / 3
Else
Sayfa4.Cells(k + 8, i) = ""
End If
If Sayfa4.Cells(k + 14, i) <> "" Then
Sayfa4.Cells(k + 14, i) = Sayfa4.Cells(k + 12, i) - Sayfa4.Cells(k + 13, i) / 3
Else
Sayfa4.Cells(k + 14, i) = ""
End If
If Sayfa4.Cells(k + 17, i) <> "" Then
Sayfa4.Cells(k + 17, i) = Sayfa4.Cells(k + 15, i) - Sayfa4.Cells(k + 16, i) / 3
Else
Sayfa4.Cells(k + 17, i) = ""
End If
If Sayfa4.Cells(k + 20, i) <> "" Then
Sayfa4.Cells(k + 20, i) = Sayfa4.Cells(k + 18, i) - Sayfa4.Cells(k + 19, i) / 3
Else
Sayfa4.Cells(k + 20, i) = ""
End If
If Sayfa4.Cells(k + 23, i) <> "" Then
Sayfa4.Cells(k + 23, i) = Sayfa4.Cells(k + 21, i) - Sayfa4.Cells(k + 22, i) / 3
Else
Sayfa4.Cells(k + 23, i) = ""
End If
Sayfa4.Cells(k + 21, i) = Sayfa4.Cells(k + 3, i) + Sayfa4.Cells(k + 6, i) + Sayfa4.Cells(k + 9, i) + Sayfa4.Cells(k + 12, i) + Sayfa4.Cells(k + 15, i) + Sayfa4.Cells(k + 18, i)
Next k
Next i
End Sub