Erdinç FIRTINA
Altın Üye
- Katılım
- 14 Şubat 2007
- Mesajlar
- 400
- Excel Vers. ve Dili
- excel 2003 türkçe
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Option Base 1
Sub ogrenci_59()
Dim sonsat As Long, liste(), myarr(), z As Object, i As Long, n As Long
Range("B2:D" & Rows.Count).ClearContents
Set z = CreateObject("scripting.dictionary")
sonsat = Cells(Rows.Count, "BD").End(xlUp).Row
liste = Range("BD2:BG" & sonsat).Value
ReDim myarr(1 To UBound(liste), 3)
For i = 1 To UBound(liste)
If Not z.exists(liste(i, 1)) Then
n = n + 1
z.Add (liste(i, 1)), n
myarr(n, 1) = liste(i, 1)
myarr(n, 2) = 0
myarr(n, 3) = 0
End If
If Left(liste(i, 4), 5) = "GİRDİ" Then
myarr(z.Item(liste(i, 1)), 2) = myarr(z.Item(liste(i, 1)), 2) + 1
ElseIf Left(liste(i, 4), 11) = "HİÇ GİRMEDİ" Then
myarr(z.Item(liste(i, 1)), 3) = myarr(z.Item(liste(i, 1)), 3) + 1
End If
Next
Erase liste
Range("B2").Resize(n, 3) = myarr
Erase myarr: Set z = Nothing
MsgBox "İşlem Bitti.", vbOKOnly + vbInformation, Application.UserName
End Sub
Benim hazırladığımda alternatif olsun.
Option Explicit
Sub Ozet_Rapor()
Dim S1 As Worksheet, S2 As Worksheet, Son As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set S1 = Sheets("ALT ALTA")
Set S2 = Sheets("KARŞILAŞTIRMA")
S2.Range("A:D").Clear
S1.Columns("BD:BD").Copy S2.Range("B1")
S2.Range("B1:B65536").RemoveDuplicates Columns:=1, Header:=xlYes
S2.Range("B1").Copy S2.Range("A1,C1,D1")
S2.Range("A1") = "SIRA NO"
S2.Range("C1") = "BİRLİKTE"
S2.Range("D1") = "KENDİ"
S2.Cells.Font.Name = "Calibri"
S2.Cells.Font.Size = 11
Son = S2.Cells(S2.Rows.Count, 2).End(3).Row
S2.Range("A" & Son + 1 & ":A" & S2.Rows.Count).EntireRow.Delete
With S2.Range("A2:A" & Son)
.Formula = "=ROW()-1"
.Value = .Value
End With
With S2.Range("C2:C" & Son)
.Formula = "=COUNTIFS(" & S1.Range("BD:BD").Address(External:=True) & ",B2," & S1.Range("BG:BG").Address(External:=True) & ",""BİRLİKTE"")"
.Value = .Value
End With
With S2.Range("D2:D" & Son)
.Formula = "=COUNTIFS(" & S1.Range("BD:BD").Address(External:=True) & ",B2," & S1.Range("BG:BG").Address(External:=True) & ",""KENDİ"")"
.Value = .Value
End With
S2.Range("A:A").HorizontalAlignment = xlCenter
S2.Range("A1:D" & Son).Borders.LineStyle = 1
S2.Cells.EntireColumn.AutoFit
Set S1 = Nothing
Set S2 = Nothing
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
Yeni dosyanız.
Alternatif;
Kod:Option Explicit Sub Ozet_Rapor() Dim S1 As Worksheet, S2 As Worksheet, Son As Long Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Set S1 = Sheets("ALT ALTA") Set S2 = Sheets("KARŞILAŞTIRMA") S2.Range("A:D").Clear S1.Columns("BD:BD").Copy S2.Range("B1") S2.Range("B1:B65536").RemoveDuplicates Columns:=1, Header:=xlYes S2.Range("B1").Copy S2.Range("A1,C1,D1") S2.Range("A1") = "SIRA NO" S2.Range("C1") = "BİRLİKTE" S2.Range("D1") = "KENDİ" S2.Cells.Font.Name = "Calibri" S2.Cells.Font.Size = 11 Son = S2.Cells(S2.Rows.Count, 2).End(3).Row S2.Range("A" & Son + 1 & ":A" & S2.Rows.Count).EntireRow.Delete With S2.Range("A2:A" & Son) .Formula = "=ROW()-1" .Value = .Value End With With S2.Range("C2:C" & Son) .Formula = "=COUNTIFS(" & S1.Range("BD:BD").Address(External:=True) & ",B2," & S1.Range("BG:BG").Address(External:=True) & ",""BİRLİKTE"")" .Value = .Value End With With S2.Range("D2:D" & Son) .Formula = "=COUNTIFS(" & S1.Range("BD:BD").Address(External:=True) & ",B2," & S1.Range("BG:BG").Address(External:=True) & ",""KENDİ"")" .Value = .Value End With S2.Range("A:A").HorizontalAlignment = xlCenter S2.Range("A1:D" & Son).Borders.LineStyle = 1 S2.Cells.EntireColumn.AutoFit Set S1 = Nothing Set S2 = Nothing Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True MsgBox "İşleminiz tamamlanmıştır.", vbInformation End Sub
Sayın Korhan AYHAN çok çok teşekkür ediyorum...
Rica ederim.Dönüş yaptığınız için teşekkür ederim.Sayın çıtır çok çok teşekkür ediyorum.
Rica ederim.Dönüş yaptığınız için teşekkür ederim.
Option Base 1
Sub ogrenci_59()
Dim sonsat As Long, liste(), myarr(), z As Object, i As Long, n As Long
Dim sh As Worksheet
Set sh = Sheets("ALT ALTA")
Sheets("KARŞILAŞTIRMA").Select
Range("A2:D" & Rows.Count).ClearContents
Set z = CreateObject("scripting.dictionary")
sonsat = sh.Cells(Rows.Count, "BD").End(xlUp).Row
liste = sh.Range("BD2:BG" & sonsat).Value
ReDim myarr(1 To UBound(liste), 3)
For i = 1 To UBound(liste)
If Not z.exists(liste(i, 1)) Then
n = n + 1
z.Add (liste(i, 1)), n
myarr(n, 1) = liste(i, 1)
End If
If liste(i, 4) = "BİRLİKTE" Then
myarr(z.Item(liste(i, 1)), 2) = myarr(z.Item(liste(i, 1)), 2) + 1
ElseIf liste(i, 4) = "KENDİ" Then
myarr(z.Item(liste(i, 1)), 3) = myarr(z.Item(liste(i, 1)), 3) + 1
End If
Next
Erase liste
Range("B2").Resize(n, 3) = myarr
Range("A3").ClearContents
Range("A2").Value = 1
Range("A3").Value = 2
Range("A2:A3").AutoFill Range("A2:A" & n + 1)
Erase myarr: Set z = Nothing
MsgBox "İşlem Bitti.", vbOKOnly + vbInformation, Application.UserName
End Sub
Dosyanız ektedir.
DOSYAYI INDIR
Kod:Option Base 1 Sub ogrenci_59() Dim sonsat As Long, liste(), myarr(), z As Object, i As Long, n As Long Dim sh As Worksheet Set sh = Sheets("ALT ALTA") Sheets("KARŞILAŞTIRMA").Select Range("A2:D" & Rows.Count).ClearContents Set z = CreateObject("scripting.dictionary") sonsat = sh.Cells(Rows.Count, "BD").End(xlUp).Row liste = sh.Range("BD2:BG" & sonsat).Value ReDim myarr(1 To UBound(liste), 3) For i = 1 To UBound(liste) If Not z.exists(liste(i, 1)) Then n = n + 1 z.Add (liste(i, 1)), n myarr(n, 1) = liste(i, 1) End If If liste(i, 4) = "BİRLİKTE" Then myarr(z.Item(liste(i, 1)), 2) = myarr(z.Item(liste(i, 1)), 2) + 1 ElseIf liste(i, 4) = "KENDİ" Then myarr(z.Item(liste(i, 1)), 3) = myarr(z.Item(liste(i, 1)), 3) + 1 End If Next Erase liste Range("B2").Resize(n, 3) = myarr Range("A3").ClearContents Range("A2").Value = 1 Range("A3").Value = 2 Range("A2:A3").AutoFill Range("A2:A" & n + 1) Erase myarr: Set z = Nothing MsgBox "İşlem Bitti.", vbOKOnly + vbInformation, Application.UserName End Sub
Rica ederim.Çok teşekkür ederim Sayın Orion!