DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Option Explicit
Sub tablo()
Dim a(), b(), c(), tbl(), d As Object
Dim s1 As Worksheet, s2 As Worksheet
Dim i As Long, y As Integer, Say As Long, j As Integer
Dim Aranan As String, deg As String
Dim Erkek_Sayi As Double, Kadin_Sayi As Double, S As Double
S = TimeValue(Now)
On Error Resume Next
Set s1 = Sheets("Sayfa1")
a = s1.Range("G5:K" & s1.Range("G" & Rows.Count).End(3).Row)
For j = 1 To Worksheets.Count
If Sheets(j).Name <> "Sayfa1" Then
Set d = CreateObject("scripting.dictionary")
Set s2 = Sheets(j)
Aranan = s2.Name
For i = 1 To UBound(a)
If a(i, 5) = "45 YAŞ VE ÜZERİ" Then a(i, 5) = "45+"
If a(i, 5) = "22-44 YAŞ ARASI" Then a(i, 5) = "23-44"
If a(i, 1) = Aranan Then
a(i, 5) = Split(a(i, 5), " ")(0)
deg = a(i, 5) & Trim(a(i, 2)) & Trim(a(i, 3))
d(deg) = d(deg) + 1
End If
Next i
b = s2.[B7:B10].Value
c = s2.[F5:M6].Value
ReDim tbl(1 To UBound(b) + 1, 1 To UBound(c, 2) + 3)
For i = 1 To UBound(b)
For y = 1 To UBound(c, 2) Step 2
Erkek_Sayi = Val(d(b(i, 1) & c(1, y) & c(2, y)))
Kadin_Sayi = Val(d(b(i, 1) & c(1, y) & c(2, y + 1)))
tbl(i, 1) = tbl(i, 1) + Erkek_Sayi + Kadin_Sayi
tbl(i, 2) = Erkek_Sayi
tbl(i, 3) = Kadin_Sayi
tbl(i, y + 3) = Erkek_Sayi
tbl(i, y + 4) = Kadin_Sayi
Next y
For y = 1 To UBound(c, 2) + 3
tbl(UBound(b) + 1, y) = tbl(UBound(b) + 1, y) + tbl(i, y)
Next y
Next i
s2.[C7].Resize(UBound(b) + 1, UBound(c, 2) + 3) = tbl
End If
Next j
MsgBox "İşlem Tamam." & vbLf & vbLf & CDate(TimeValue(Now) - S), vbInformation
End Sub
Sub tablo()
Dim a(), b(), c(), tbl(), d As Object
Dim s1 As Worksheet, s2 As Worksheet
Dim i As Long, y As Integer, Say As Long, j As Integer
Dim Aranan As String, deg As String
Dim Erkek_Sayi As Double, Kadin_Sayi As Double, S As Double
S = TimeValue(Now)
On Error Resume Next
Set s1 = Sheets("Sayfa1")
a = s1.Range("G5:K" & s1.Range("G" & Rows.Count).End(3).Row)
For j = 1 To Worksheets.Count
If Sheets(j).Name <> "Sayfa1" Then
Set d = CreateObject("scripting.dictionary")
Set s2 = Sheets(j)
Aranan = s2.Name
For i = 1 To UBound(a)
If a(i, 5) = "45 YAŞ VE ÜZERİ" Then a(i, 5) = "45+"
If a(i, 5) = "22-44 YAŞ ARASI" Then a(i, 5) = "23-44"
If [COLOR="red"]Trim([/COLOR]a(i, 1)[COLOR="red"]) [/COLOR]= Aranan Then
a(i, 5) = Split(a(i, 5), " ")(0)
deg = a(i, 5) & Trim(a(i, 2)) & Trim(a(i, 3))
d(deg) = d(deg) + 1
End If
Next i
b = s2.[B7:B10].Value
c = s2.[F5:M6].Value
ReDim tbl(1 To UBound(b) + 1, 1 To UBound(c, 2) + 3)
For i = 1 To UBound(b)
For y = 1 To UBound(c, 2) Step 2
Erkek_Sayi = Val(d(b(i, 1) & c(1, y) & c(2, y)))
Kadin_Sayi = Val(d(b(i, 1) & c(1, y) & c(2, y + 1)))
tbl(i, 1) = tbl(i, 1) + Erkek_Sayi + Kadin_Sayi
tbl(i, 2) = [COLOR="Red"]tbl(i, 2) +[/COLOR] Erkek_Sayi
tbl(i, 3) = [COLOR="red"]tbl(i, 3) +[/COLOR] Kadin_Sayi
tbl(i, y + 3) = Erkek_Sayi
tbl(i, y + 4) = Kadin_Sayi
Next y
For y = 1 To UBound(c, 2) + 3
tbl(UBound(b) + 1, y) = tbl(UBound(b) + 1, y) + tbl(i, y)
Next y
Next i
s2.[C7].Resize(UBound(b) + 1, UBound(c, 2) + 3) = tbl
End If
Next j
MsgBox "İşlem Tamam." & vbLf & vbLf & CDate(TimeValue(Now) - S), vbInformation
End Sub