- Katılım
- 29 Mart 2011
- Mesajlar
- 43
- Excel Vers. ve Dili
- 2007, türkçe
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub Sayfa_Ac()
Dim i As Long, sayfa As String, j As Integer, So As Worksheet
Set So = Sheets("örneklem")
Application.ScreenUpdating = False
So.Select
Application.DisplayAlerts = False
For j = Worksheets.Count To 1 Step -1
With Sheets(j)
If .Name <> "örneklem" Then
.Delete
End If
End With
Next j
Application.DisplayAlerts = True
With CreateObject("Scripting.Dictionary")
For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row
If Not Cells(i, "B") = Empty Then
sayfa = So.Cells(i, "B")
If .exists(sayfa) = False Then
.Add sayfa, Nothing
Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = sayfa
So.Select
End If
End If
Next i
End With
Application.ScreenUpdating = True
End Sub
merhabalar,
Örneklem olarak ana sheet dosyasını ekteki gibi ilçelere göre sheet'lere ayrılmıştır.
Örneklem ana sheetin üzerinden nasıl makro yazarak bunu aynı şekilde sheetlere ayırabilirim.
Teşekkürler.
Sub Sayfa_Ac()
Dim i As Long, sayfa As String, j As Integer, So As Worksheet, son As Long
Set So = Sheets("örneklem")
Application.ScreenUpdating = False
So.Select
Application.DisplayAlerts = False
For j = Worksheets.Count To 1 Step -1
With Sheets(j)
If .Name <> "örneklem" Then
.Delete
End If
End With
Next j
Application.DisplayAlerts = True
For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row
If Not Cells(i, "B") = Empty Then
sayfa = So.Cells(i, "B")
If Not varmi(sayfa) Then
Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = sayfa
son = Cells(Rows.Count, "A").End(xlUp).Row + 1
Cells(son, "A") = So.Cells(i, "A")
Cells(son, "B") = So.Cells(i, "B")
So.Select
Else
son = Sheets(sayfa).Cells(Rows.Count, "A").End(xlUp).Row + 1
Sheets(sayfa).Cells(son, "A") = So.Cells(i, "A")
Sheets(sayfa).Cells(son, "B") = So.Cells(i, "B")
So.Select
End If
End If
Next i
Application.ScreenUpdating = True
End Sub
Function varmi(adi As String) As Boolean
On Error Resume Next
varmi = CBool(Len(Worksheets(adi).Name) > 0)
End Function
B sutununa gore sayfa acilacak, A:K arası tum sutunlar aktarılacak.
tesekkür ederim.
Sub Sayfa_Ac()
Dim i As Long, sayfa As String, j As Integer, So As Worksheet, son As Long
Set So = Sheets("örneklem")
Application.ScreenUpdating = False
So.Select
Application.DisplayAlerts = False
For j = Worksheets.Count To 1 Step -1
With Sheets(j)
If .Name <> "örneklem" Then
.Delete
End If
End With
Next j
Application.DisplayAlerts = True
For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row
If Not Cells(i, "B") = Empty Then
sayfa = So.Cells(i, "B")
If Not varmi(sayfa) Then
Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = sayfa
[COLOR=red] So.Range("A1:K1").Copy Range("A1")[/COLOR]
son = Cells(Rows.Count, "A").End(xlUp).Row + 1
So.Range(So.Cells(i, "A"), So.Cells(i, "K")).Copy Cells(son, "A")
So.Select
Else
son = Sheets(sayfa).Cells(Rows.Count, "A").End(xlUp).Row + 1
So.Range(So.Cells(i, "A"), So.Cells(i, "K")).Copy Sheets(sayfa).Cells(son, "A")
So.Select
End If
End If
Next i
Application.ScreenUpdating = True
End Sub
Function varmi(adi As String) As Boolean
On Error Resume Next
varmi = CBool(Len(Worksheets(adi).Name) > 0)
End Function