Otomatik Sayfa Yaratma – Sayfa Ekleme

Sayfa yaratma adli basligimiz icin belirli bir araliktaki verilerin adini tasiyan sayfalar yaratmayi dusunduk.. Ve bu araliktaki sayfalarin tekrar yaratilamayacak sekilde olmasi ve yeni eklenen satirlarinda butona her tiklandiginda guncel bir sayfa olusmasini istedik..

 

Asagidaki resim bir onceki resimdeki aralikta yazili isimleri temsil eden sayfalri icermekte..

[dropcap style=”font-size: 60px; color: #9b9b9b;”] O[/dropcap]ncelikle sayfalarin onceden acilip acilmadigini bulmak icin bir fonksiyon yaratiyoruz. Bu fonksiyonumuz sayesinde daha sonra kodlarimizi tekrar tekrar calistirabilecegiz ve ayni olan sayfalarin mukerrer acilmasiniyani sonlarinda sayilar ile acilmasini onlemis olacagiz, belki her araligigi guncelledigimizde yeni girilenlerin eklenmesini saglayacagiz..

 

Function Sheet_Exists(WorkSheet_Name As String) As Boolean

Dim Work_sheet As Worksheet

Sheet_Exists = False

For Each Work_sheet In ThisWorkbook.Worksheets

If Work_sheet.Name = WorkSheet_Name Then

Sheet_Exists = True

End If

Next

End Function

Ornek kodda gordugunuz gibi Sheet_Exists adli fonksiyonumuz sayfanin bulunup bulunmadigina gore True, False degerlerini aliyor..

Daha sonra fonksiyon babinda diyebilecegim bir sub daha yaratiyoruz..

Sub CreateWorksheets(Names_Of_Sheets As Range) ' Burada gordugunzu uzere aralik belirleniyor

Dim No_Of_Sheets_to_be_Added As Integer

Dim Sheet_Name As String

Dim i As Integer

No_Of_Sheets_to_be_Added = Names_Of_Sheets.Rows.Count

For i = 1 To No_Of_Sheets_to_be_Added

Sheet_Name = Names_Of_Sheets.Cells(i, 1).Value

If (Sheet_Exists(Sheet_Name) = False) And (Sheet_Name <> "") Then

Worksheets.Add().Name = Sheet_Name

End If

Next i

End Sub

Simdi neden fonksiyon babinda dedigimi daha net anlayacaksiniz, ustteki kodda gordugunuz gibi bir aralik belirledik fakat oraya gelmesi gereken araligin kodlama icerisinde bulunmadigini goruyorsunuz.. Araligimizida bu macromuzu cagiracak sekilde bir butona kodluyoruz..

Private Sub CommandButton1_Click()

Call CreateWorksheets(Sheets("Sheet1").Range("A1:a10"))

End Sub

Bu kodumuzda gordugunuz gibi CreateWorksheets adli macromuzu cagirirken sanki bir fonksiyonn gibi araligida belirterek calismasini sagliyoruz, ornek dosyayi inceleyiniz..

Bu konu icin degil tabiki anlamadiginiz her turlu kodlama icin yorumlar ile yardim isteyiniz, kolay gelsin..

Sayfa Ekleme

Yazar: mmustafaaslan

2004 yilindan itibaren ozel bir sirketin finans departmaninda calismaktadir. Kendini excel, visual basic kullaniminda gelistirmis olan yazarimiz; Meslegi geregi SAP konusunda ileri derecede bilgilidir.

“Otomatik Sayfa Yaratma – Sayfa Ekleme” için 1 yorum

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


6 + 6 =