1903emre34@gmail.com
Altın Üye
- Katılım
- 29 Mayıs 2016
- Mesajlar
- 943
- Excel Vers. ve Dili
- Microsoft Excel 2013 Türkçe
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub AnaHesapSayfalar()
Dim Dict As Object
Arr = Worksheets("Sayfa1").Range("A1:L" & Worksheets("Sayfa1").Range("A" & Rows.Count).End(3).Row).Value
If UBound(Arr) < 2 Then Exit Sub
Set Dict = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(Arr)
If Not Dict.Exists(Left(Arr(i, 11), 3)) Then Dict.Add Left(Arr(i, 11), 3), 1
Next i
Set SortArr = CreateObject("System.Collections.ArrayList")
For Each Key In Dict
SortArr.Add Key
Next
SortArr.Sort
On Error Resume Next
Application.DisplayAlerts = False
For i = 1 To SortArr.Count
Worksheets(SortArr(i - 1)).Delete
If i = 1 Then
Sheets.Add(After:=Sheets("Sayfa1")).Name = SortArr(i - 1)
Else
Sheets.Add(After:=Sheets(SortArr(i - 2))).Name = SortArr(i - 1)
End If
ReDim NewList(1 To UBound(Arr), 1 To UBound(Arr, 2))
Say = 0
For k = 1 To UBound(Arr)
If k = 1 Or Left(Arr(k, 11), 3) = SortArr(i - 1) Then
Say = Say + 1
For x = 1 To UBound(Arr, 2)
NewList(Say, x) = Arr(k, x)
Next x
End If
Next k
Sheets(SortArr(i - 1)).Range("A1").Resize(UBound(NewList, 1), UBound(NewList, 2)) = NewList
Sheets(SortArr(i - 1)).Cells.NumberFormat = Worksheets("Sayfa1").Cells.NumberFormat
Next i
Application.DisplayAlerts = True
On Error GoTo 0
End Sub
Kodlarınızda güzel bir fonksiyon var.Böyle bir şey mi istediniz ?
Function SayfaVarMi(SayfaAdi As String) As Boolean
On Error Resume Next
SayfaVarMi = CBool(Len(Worksheets(SayfaAdi).Name) > 0)
End Function
Çok teşekkür ederim hocam , haklısınız siz kodları global düşünüyorsunuz ben daha hata varsa geç modundayım, excel'de yeniyim sayılır, uyarınız bana bişey öğrenmeme vesile oldu tşklrKodlarınızda güzel bir fonksiyon var.
Ancak On Error Resume Next kullanırken dikkat etmeli, kodların bitimindeC++:Function SayfaVarMi(SayfaAdi As String) As Boolean On Error Resume Next SayfaVarMi = CBool(Len(Worksheets(SayfaAdi).Name) > 0) End Function
On Error Goto 0 ile normal duruma almalısınız ki farklı dosyalar farklı kodlar düzgün çalışabilsin.