- Katılım
- 1 Ağustos 2019
- Mesajlar
- 839
- Excel Vers. ve Dili
- Türkçe excel 2016
İngilizce excel 2016
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Option Explicit
Sub Yas_Araligi_Say()
Dim Liste As Variant, Son As Long, X As Long
Dim Say_1 As Long, Say_2 As Long, Say_3 As Long, Say_4 As Long
Son = Cells(Rows.Count, 1).End(3).Row
Liste = Range("A2:Z" & Son).Value
For X = 1 To UBound(Liste)
If Liste(X, 26) <> "" Then
If Liste(X, 7) = "GÜVENLİK GÖREVLİSİ" Then
If Liste(X, 23) = "Etkin" Then
Select Case (Year(Date) - Year(Liste(X, 26)))
Case 18 To 25
Say_1 = Say_1 + 1
Case 26 To 35
Say_2 = Say_2 + 1
Case 36 To 45
Say_3 = Say_3 + 1
Case Is > 45
Say_4 = Say_4 + 1
End Select
End If
End If
End If
Next
MsgBox "Çalışma durumu ETKİN ve görevi GÜVENLİK GÖREVLİSİ olanların yaş analizi..." & Chr(10) & Chr(10) & _
"18-25 : " & Say_1 & " Kişi" & Chr(10) & _
"26-35 : " & Say_2 & " Kişi" & Chr(10) & _
"36-45 : " & Say_3 & " Kişi" & Chr(10) & _
">45 : " & Say_4 & " Kişi" & Chr(10), vbInformation
End Sub
Korhan bey makroyu calistirdim ancak sonuçları 0 kişi olarak gosterdiDeneyiniz.
Kod:Option Explicit Sub Yas_Araligi_Say() Dim Liste As Variant, Son As Long, X As Long Dim Say_1 As Long, Say_2 As Long, Say_3 As Long, Say_4 As Long Son = Cells(Rows.Count, 1).End(3).Row Liste = Range("A2:Z" & Son).Value For X = 1 To UBound(Liste) If Liste(X, 7) = "GÜVENLİK GÖREVLİSİ" Then If Liste(X, 23) = "Etkin" Then Select Case (Year(Date) - Year(Liste(X, 26))) Case 18 To 25 Say_1 = Say_1 + 1 Case 26 To 35 Say_2 = Say_2 + 1 Case 36 To 45 Say_3 = Say_3 + 1 Case Is > 45 Say_4 = Say_4 + 1 End Select End If End If Next MsgBox "Çalışma durumu ETKİN ve görevi GÜVENLİK GÖREVLİSİ olanların yaş analizi..." & Chr(10) & Chr(10) & _ "18-25 : " & Say_1 & " Kişi" & Chr(10) & _ "26-35 : " & Say_2 & " Kişi" & Chr(10) & _ "36-45 : " & Say_3 & " Kişi" & Chr(10) & _ ">45 : " & Say_4 & " Kişi" & Chr(10), vbInformation End Sub
Kusura bakmayın bölgesel dil seçenekleri ingilizce olduğu için veriler de düzenleme yaptım verdiğiniz makro çalıştı teşekkür ederimEklediğiniz dosyada denediniz mi?
Korhan bey 3868 kişilik listem var ancak 15 kişinin dogum tarihi yok toplam sonucu 3853 cikarmasi gerekirken boş hücrelerinde sayip 3868 kişi çıkarıyorDeneyiniz.
Kod:Option Explicit Sub Yas_Araligi_Say() Dim Liste As Variant, Son As Long, X As Long Dim Say_1 As Long, Say_2 As Long, Say_3 As Long, Say_4 As Long Son = Cells(Rows.Count, 1).End(3).Row Liste = Range("A2:Z" & Son).Value For X = 1 To UBound(Liste) If Liste(X, 7) = "GÜVENLİK GÖREVLİSİ" Then If Liste(X, 23) = "Etkin" Then Select Case (Year(Date) - Year(Liste(X, 26))) Case 18 To 25 Say_1 = Say_1 + 1 Case 26 To 35 Say_2 = Say_2 + 1 Case 36 To 45 Say_3 = Say_3 + 1 Case Is > 45 Say_4 = Say_4 + 1 End Select End If End If Next MsgBox "Çalışma durumu ETKİN ve görevi GÜVENLİK GÖREVLİSİ olanların yaş analizi..." & Chr(10) & Chr(10) & _ "18-25 : " & Say_1 & " Kişi" & Chr(10) & _ "26-35 : " & Say_2 & " Kişi" & Chr(10) & _ "36-45 : " & Say_3 & " Kişi" & Chr(10) & _ ">45 : " & Say_4 & " Kişi" & Chr(10), vbInformation End Sub
Boş hucreleri sanırım 45 yaş üstüne eklemis diğer yaş aralığı verileri doğru Korhan bey formülle hesaplattigimda boş hucreleri 120 yaş hesaplıyor sanırım makrodada böyle hesplayip 45 yasin üstündeki verilere eklemisEklediğiniz dosyada denediniz mi?
Teşekkürler Korhan bey şimdi olduEklediğiniz dosyada boş hücre olmadığı için o opsiyonu eklememiştim.
Üstteki mesajımdaki kodu güncelledim. Tekrar deneyiniz.