Bugün ihtiyacım olan ve internette arayıp bularak uyguladığım bir kodu sizinle paylaşmak istiyorum.
Kod parçamız çok fazla satırı bulunan bir Excel Kitabını (Sheet) parçalara bölerek farklı Kitaplara aktarmaktadır. Hem de bizim istediğimiz satır sayısı kadarıyla.
Hemen konuya geçersem;
Ben Excel 2010 versiyonunda bu işin nasıl yapılacağını anlatacağım. Öncelikle "Developer Ribbon" a ihtiyacımız olacak. Çünkü Visual Basic kodu yazabilmemiz için bu "Ribbon-Toolbar" bize gerekiyor.
İlk aşamada bu Toolbar görünmemektedir gösterebilmek için,
File -> Options -> Customize Ribbon -> Developer onay kutusunu işaretleyin. Sağ taraftaki Listbox içerisinde seçilmemiş şekilde olmalı.
Gelelim Kodumuzu ekleyeceğimiz bölüme.
Developer onay kutusunu işaretlediğimizde ve "Tamam" diyerek Excel'e eklediğimizde içerisinde "İnsert (Ekle)" diye bir ikon göreceğiz. Buradan bir Activex Control -> Command Button ekleyeceğiz. Ve "Design Mode" ikonuna tıklayıp tasarım görünümüne geçeceğiz. Burdan sonra Excel içerisine eklediğimiz butonu çift tıklayarak içerisine aşağıdaki kodu yazıyoruz.
Private Sub CommandButton1_Click()
Private Sub CommandButton1_Click()
Dim ToplamKayitSayisi, c, t, d As Integer
ToplamKayitSayisi = 20
Dim SayfaKayitSayisi As Long
SayfaKayitSayisi = 10
AcilacakSayfa = ToplamKayitSayisi / SayfaKayitSayisi
For i = 1 To AcilacakSayfa
Sheets.Add
ActiveSheet.Name = "Data" & i
Next
c = 2
t = 2 + SayfaKayitSayisi
For i = 1 To AcilacakSayfa
d = d + 1
Sheets("Sheet1").Rows(c & ":" & t).Copy Sheets("Data" & d).[a2]
c = t + 1
t = SayfaKayitSayisi + t + 1
Next
End Sub
Artık test etmek için Visual Basic kod penceresinden çıkmamız ve Excel 'e geçmemiz gerekiyor. Bunun için de sol üst köşedeki "Excel" ikonuna tıklıyoruz. Excel'e geçtiğimizde "Design Mode" tan çıkmak içinde "Design Mode" ikonuna tıklıyoruz. Şimdi artık Butonumuza basabilir ve sonucu görebiliriz.
Kolay gelsin.
ToplamKayitSayisi = 20
Dim SayfaKayitSayisi As Long
SayfaKayitSayisi = 10
AcilacakSayfa = ToplamKayitSayisi / SayfaKayitSayisi
For i = 1 To AcilacakSayfa
Sheets.Add
ActiveSheet.Name = "Data" & i
Next
c = 2
t = 2 + SayfaKayitSayisi
For i = 1 To AcilacakSayfa
d = d + 1
Sheets("Sheet1").Rows(c & ":" & t).Copy Sheets("Data" & d).[a2]
c = t + 1
t = SayfaKayitSayisi + t + 1
Next
End Sub
Artık test etmek için Visual Basic kod penceresinden çıkmamız ve Excel 'e geçmemiz gerekiyor. Bunun için de sol üst köşedeki "Excel" ikonuna tıklıyoruz. Excel'e geçtiğimizde "Design Mode" tan çıkmak içinde "Design Mode" ikonuna tıklıyoruz. Şimdi artık Butonumuza basabilir ve sonucu görebiliriz.
Kolay gelsin.
Hiç yorum yok:
Yorum Gönder