Sayfa içinde sayfa oluşturabilmek için ne yapmalıyım?

Katılım
24 Ocak 2019
Mesajlar
6
Excel Vers. ve Dili
2010 tr
Merhabalar. Her yılın her ayına ait işlemem gereken veriler var ve her yıl için ayrı excel kitabı oluşturmam ve her ayı excell yapraktan oluşturmam gerekiyor. Örneğin 10 yıllık bir çalışmayı tek kitapta yapabilir miyim?
Şöyle bir kod bulup denediğimde ayrı kitap oluşturup benden sayı belirlememi istiyor. Kodu çalıştırdığımda ayrı bir kitap oluşturup belirlediğim sayı adedince kitap değil yaprak oluşturuyor ve ayrı bir proje olarak kaydediyor. Benim istediğim tek kitap içinde ikinci bir çalışma sayfası.

Kod:
Sub MakeWorkbook()
'update Extendoffice 20150909
    Dim xOldCount As Integer
    Dim xNewCount As Variant
    xOldCount = Application.SheetsInNewWorkbook
    xNewCount = Application.InputBox("How many sheets in the new workbook do you want?", "Kutools for Excel", , , , , , 1)
    If xNewCount = False Then Exit Sub
    If (xNewCount < 1) Or (CLng(xNewCount) > 255) Then
        MsgBox "The number must between 1 and 255!"
        Exit Sub
    End If
    With Application
        .SheetsInNewWorkbook = xNewCount
        .Workbooks.Add
        .SheetsInNewWorkbook = xNewCount
    End With
End Sub
Resimde ki gibi sekmelerle tek kitapta projemi tasarlayıp her kitapta bulunan her ay için veri işlemek istiyorum.


Ocak Şubat Mart Nisan --------->>>> her kitapta 12 ay için yaprak var.
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Aşağıdaki kodları deneyin.
Kod:
Private Sub CommandButton1_Click()
Dim BaslangicYil, BitisYil As Variant
Dim bukitap As Worksheet, okitap As Workbook
Set bukitap = ThisWorkbook.Sheets("sayfa1")
Dim Aylar(12)
 Application.DisplayAlerts = False
BaslangicYil = Application.InputBox("Lütfen ilk yılı giriniz. " & vbNewLine & "yyyy şeklinde dört rakam olacak şekilde giriniz.", "ASKM", , , , , , 1)
BitisYil = Application.InputBox("Lütfen ikinci yılı giriniz. " & vbNewLine & "yyyy şeklinde dört rakam olacak şekilde giriniz.", "ASKM", , , , , , 1)
If BaslangicYil = False Or IsNumeric(BaslangicYil) = False Then Exit Sub
If BitisYil = False Or IsNumeric(BitisYil) = False Then Exit Sub
If BaslangicYil < BitisYil Then
    Yil1 = BaslangicYil
    Yil2 = BitisYil
Else
    Yil1 = BitisYil
    Yil2 = BaslangicYil
End If

'___________________________________________________________-
Aylar(0) = "Ocak"
Aylar(1) = "Şubat"
Aylar(2) = "Mart"
Aylar(3) = "Nisan"
Aylar(4) = "Mayıs"
Aylar(5) = "Haziran"
Aylar(6) = "Temmuz"
Aylar(7) = "Ağustos"
Aylar(8) = "Eylül"
Aylar(9) = "Ekim"
Aylar(10) = "Kasım"
Aylar(11) = "Aralık"

'___________________________________________________________-
For yil = Yil1 To Yil2
    Workbooks.Add
    Set okitap = ActiveWorkbook
    ActiveWorkbook.SaveAs ThisWorkbook.Path & _
    Application.PathSeparator & yil '& ".xlsx"
    With okitap
        For Ay = 0 To 11
            Sheets.Add After:=Sheets(Worksheets.Count)
            ActiveSheet.Name = Aylar(Ay)
        Next Ay
    .Save
    .Close
    End With

Next yil
Application.DisplayAlerts = True
MsgBox "Çalışma Kitapları Oluşturuldu...", vbInformation, "ASKM"
End Sub
 
Katılım
24 Ocak 2019
Mesajlar
6
Excel Vers. ve Dili
2010 tr
Aşağıdaki kodları deneyin.
Kod:
Private Sub CommandButton1_Click()
Dim BaslangicYil, BitisYil As Variant
Dim bukitap As Worksheet, okitap As Workbook
Set bukitap = ThisWorkbook.Sheets("sayfa1")
Dim Aylar(12)
Application.DisplayAlerts = False
BaslangicYil = Application.InputBox("Lütfen ilk yılı giriniz. " & vbNewLine & "yyyy şeklinde dört rakam olacak şekilde giriniz.", "ASKM", , , , , , 1)
BitisYil = Application.InputBox("Lütfen ikinci yılı giriniz. " & vbNewLine & "yyyy şeklinde dört rakam olacak şekilde giriniz.", "ASKM", , , , , , 1)
If BaslangicYil = False Or IsNumeric(BaslangicYil) = False Then Exit Sub
If BitisYil = False Or IsNumeric(BitisYil) = False Then Exit Sub
If BaslangicYil < BitisYil Then
    Yil1 = BaslangicYil
    Yil2 = BitisYil
Else
    Yil1 = BitisYil
    Yil2 = BaslangicYil
End If

'___________________________________________________________-
Aylar(0) = "Ocak"
Aylar(1) = "Şubat"
Aylar(2) = "Mart"
Aylar(3) = "Nisan"
Aylar(4) = "Mayıs"
Aylar(5) = "Haziran"
Aylar(6) = "Temmuz"
Aylar(7) = "Ağustos"
Aylar(8) = "Eylül"
Aylar(9) = "Ekim"
Aylar(10) = "Kasım"
Aylar(11) = "Aralık"

'___________________________________________________________-
For yil = Yil1 To Yil2
    Workbooks.Add
    Set okitap = ActiveWorkbook
    ActiveWorkbook.SaveAs ThisWorkbook.Path & _
    Application.PathSeparator & yil '& ".xlsx"
    With okitap
        For Ay = 0 To 11
            Sheets.Add After:=Sheets(Worksheets.Count)
            ActiveSheet.Name = Aylar(Ay)
        Next Ay
    .Save
    .Close
    End With

Next yil
Application.DisplayAlerts = True
MsgBox "Çalışma Kitapları Oluşturuldu...", vbInformation, "ASKM"
End Sub
Ilk fırsatta çözüm onerinizi deneyeceğim. Çok teşekkür ederim cevapladiginjz için
 
Katılım
24 Ocak 2019
Mesajlar
6
Excel Vers. ve Dili
2010 tr
Verdiğiniz kod işe yaradı. Farklı dosya oluşturuyor.Sanırım tek kitapta birden fazla kitap ve buna bağlı sayfa oluşturulamıyor. Ayrı ayrı kitap oluşturmak zorundayım sanırım. Dosya onedrive da ve 1. dosyada ki yıl bitiminde yeni yıla girerken yeni bilgileri eski dosyadan çekmesini istediğimde geçerli bir adres tanımlamıyor o yüzden tek kitapta birden fazla yıl ve o yıllara ait aylık verileri işlemeyi istemiştim. Ayrı ayrı kitaplar olduğunda onedrive üzerinden excell dosyaları birbiriyle haberleştiremiyorum tek kitapta birden fazla yıl ve her yıla ait ayları tasarlayabilir miyim?
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
2010-1, 2010-2 şeklinde sayfa oluşturabilirsiniz. Yalnız dosya boyutu şişer bu şekilde.
 
Üst