- Katılım
- 11 Mart 2005
- Mesajlar
- 3,059
- Excel Vers. ve Dili
- Office 2013 İngilizce
Merhaba,
Aşağıdaki kodda tabloda aylara göre plaka bilgilerini raporlamak istiyorum
eğer a (ay) değeri 0 olunca, ayları filtrelemeden tüm ayları alsın, a (ay) değeri 1,2,3 .... 11,12 olduğunda ilgili ayın verilerini getirsin diye aşağıdaki kodu oluşturdum.
bana göre biraz uzun bir kod oldu,
If Trim(wSh.Range("D" & x).Value) = plaka And Month(wSh.Range("B" & x).Value) = a Then
kod satırında a (ay) değeri 0 olduğunda "hepsini al" gibi bir yapılandırma yapılabilir mi? özetle amacım kodu kısaltmak...
ilginiz için şimdiden teşekkürler, iyi çalışmalar.
Aşağıdaki kodda tabloda aylara göre plaka bilgilerini raporlamak istiyorum
eğer a (ay) değeri 0 olunca, ayları filtrelemeden tüm ayları alsın, a (ay) değeri 1,2,3 .... 11,12 olduğunda ilgili ayın verilerini getirsin diye aşağıdaki kodu oluşturdum.
bana göre biraz uzun bir kod oldu,
If Trim(wSh.Range("D" & x).Value) = plaka And Month(wSh.Range("B" & x).Value) = a Then
kod satırında a (ay) değeri 0 olduğunda "hepsini al" gibi bir yapılandırma yapılabilir mi? özetle amacım kodu kısaltmak...
ilginiz için şimdiden teşekkürler, iyi çalışmalar.
Kod:
Sub Test
PlakaAra11, plaka, 0
end sub
Kod:
Private Sub PlakaAra11(plaka As String, a As Byte)
Dim wSh As Worksheet
Dim st As String
Dim ara As String
Dim x As Long
Dim y As Byte
Dim ks As Integer
ks = 1
Set wSh = Sheets("Turlar")
For x = 2 To 100000
If wSh.Range("A" & x) = "" Then Exit For
If a = 0 Then
If Trim(wSh.Range("D" & x).Value) = plaka Then
ks = ks + 1
For y = 1 To 12
Sayfa12.Cells(ks, y).Value = wSh.Cells(x, y).Value
Next y
End If
Else
If Trim(wSh.Range("D" & x).Value) = plaka And Month(wSh.Range("B" & x).Value) = a Then
ks = ks + 1
For y = 1 To 12
Sayfa12.Cells(ks, y).Value = wSh.Cells(x, y).Value
Next y
End If
End If
Next x
Set wSh = Nothing
End Sub