Otomatik sayfalar açma ve onları adlandırma

Katılım
20 Şubat 2006
Mesajlar
259
Saygıdeğer Arkadaşlar;
Aşağıdaki makroyu nasıl düzenlerim sizce ki, bir butona bunu atayıp ta üzerine tıkladığımda bana "Anasayfa" adlı adlı sayfanın önce kopyasını alacak ve Peşine hangi sayfa numarasında kalmışsa eğer, onun yanına peşpeşe 15 tane sayfa ekleyecek ve bu sayfaların numarası 0001 0002 vb. formatta olacak.


Sub Makro1()
'
' Makro1 Makro
' Makro Gecemavisi tarafından 26.05.2006 tarihinde kaydedildi.
'

'
Sheets("Sayfa1").Select
Sheets.Add
Sheets("Sayfa1").Name = "001"

Sheets("Sayfa2").Name = "002"
Sheets.Add

End Sub

Yardımlarınız için şimdiden teşekkürler...
 
Katılım
3 Ocak 2006
Mesajlar
43
Excel Vers. ve Dili
2007
İngilizce
gecemavisi' Alıntı:
Sub Makro1()
'
' Makro1 Makro
' Makro Gecemavisi tarafından 26.05.2006 tarihinde kaydedildi.
'

'
Sheets("Sayfa1").Select
Sheets.Add
Sheets("Sayfa1").Name = "001"

Sheets("Sayfa2").Name = "002"
Sheets.Add

End Sub

Yardımlarınız için şimdiden teşekkürler...
Sn. gecemavisi

Yazdığınız örneğe bağlı olarak :

[vb:1:6bd60c2e58]Dim intI

Sheets(1).Name = "001"
For intI = 2 To 9
Sheets.Add after:=Sheets(intI - 1)
Sheets(intI).Name = "00" & intI
Next intI[/vb:1:6bd60c2e58]
 
Katılım
20 Şubat 2006
Mesajlar
259
Hocam, Örnek çok güzel olmuş ama ben bir sonraki basışımda en son hangi sayfa ise ondan sonra bir 15 sayfa daha eklemesi gerek
 
Katılım
3 Ocak 2006
Mesajlar
43
Excel Vers. ve Dili
2007
İngilizce
gecemavisi' Alıntı:
Hocam, Örnek çok güzel olmuş ama ben bir sonraki basışımda en son hangi sayfa ise ondan sonra bir 15 sayfa daha eklemesi gerek
pardon tam okumadan yazmışım, buyrun;

[vb:1:c00dde7fcf]Dim intI As Integer
Sheets(1).Name = "0001"
For intI = 2 To 15

Sheets.Add after:=Sheets(intI - 1)

Sheets(intI).Name = Format(intI, "0000")
Next intI[/vb:1:c00dde7fcf]

15 rakamını istediğiniz kadar arttırın format değişmeyecektir.
 
Katılım
20 Şubat 2006
Mesajlar
259
Hocam burdaki maksatım, ilk 15 sayfam dolunda 1. sayfamın kopyası olarak 15. sayfadan başlayıp 30 kadar bi daha oluşturacak. bir dahaki basmam da 30 dan 45 e kadar peşpeşe ekleyecek.
 
Katılım
3 Ocak 2006
Mesajlar
43
Excel Vers. ve Dili
2007
İngilizce
her basışta eklemek için :
[vb:1:de42d7bde4] Dim intI As Integer


For intI = Sheets.Count To Sheets.Count + 15
Sheets(1).Copy after:=Sheets(intI)
Sheets(intI).Name = Format(intI, "0000")
Next intI[/vb:1:de42d7bde4]
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Ekteki örneği incelermisiniz.
 
Katılım
20 Şubat 2006
Mesajlar
259
Arkadaşlar,
Her ikinize de çok teşekkür ediyorum. Beni büyük zahmetten kurtardınız. Sağolun.
 
Katılım
20 Şubat 2006
Mesajlar
259
Bir eksik kalan problemim de aa1 hücresine otomatik olarak sayfanın adının yazılması. Ve bu kayıtlar hiç bir zaman değişmeyecek. Yardımınızı rica ediyorum arkadaşlar. Sağolun
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Kullanmış olduğumuz kodu aşağıdaki ile değiştiriniz.

Kod:
Sub SAYFA_EKLE()
    Application.ScreenUpdating = False
    Say = Worksheets.Count
    For X = Say To Say + 14
    Sheets("ANASAYFA").Select
    Sheets("ANASAYFA").Copy After:=Sheets(Worksheets.Count)
    ActiveSheet.Shapes("Button 1").Delete
    ActiveSheet.Name = Format(X, "0000")
    ActiveSheet.[AA1].Select
        Selection.NumberFormat = "0000"
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    ActiveSheet.[AA1] = ActiveSheet.Name
    Next
    Sheets("ANASAYFA").Select
    Application.ScreenUpdating = True
End Sub
 
Katılım
3 Ocak 2006
Mesajlar
43
Excel Vers. ve Dili
2007
İngilizce
gecemavisi' Alıntı:
Bir eksik kalan problemim de aa1 hücresine otomatik olarak sayfanın adının yazılması. Ve bu kayıtlar hiç bir zaman değişmeyecek. Yardımınızı rica ediyorum arkadaşlar. Sağolun
İstediğiniz düzenlenmiş kodlar aşağıdadır :

[vb:1:1cb60f5094]Dim intI As Integer


For intI = Sheets.Count To Sheets.Count + 15
Sheets(1).Copy after:=Sheets(intI)
Sheets(intI + 1).Name = Format(intI + 1, "0000")
Range("AA1").Value = Sheets(intI + 1).Name
Next intI
[/vb:1:1cb60f5094]
 
Katılım
3 Ocak 2006
Mesajlar
43
Excel Vers. ve Dili
2007
İngilizce
gecemavisi' Alıntı:
Bir eksik kalan problemim de aa1 hücresine otomatik olarak sayfanın adının yazılması. Ve bu kayıtlar hiç bir zaman değişmeyecek. Yardımınızı rica ediyorum arkadaşlar. Sağolun
İstediğiniz düzenlenmiş kodlar aşağıdadır :

[vb:1:609dfd5653]Dim intI As Integer


For intI = Sheets.Count To Sheets.Count + 15
Sheets(1).Copy after:=Sheets(intI)
Sheets(intI + 1).Name = Format(intI + 1, "0000")
Range("AA1").Value = Sheets(intI + 1).Name
Next intI
[/vb:1:609dfd5653]
 
Katılım
20 Şubat 2006
Mesajlar
259
Sn Cost Control hocam,
AA1 hücresine çok güzel bir şekilde bilgiler yerleşiyor ama aa1 hücresine yerleşen 0001 hücre değeri başka sayfadan kontrol ediliyor ve o kişi numarasına ait veriler başka hücrelere indis formülü yoluyla yerleşiyor. Elle yazınca hepsi oluyor ama otomatik attırınca veriler güncelleşmiyor. Bunun bir çıkış yolu var mı sizce
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Ozaman dosyanızı ekleyin kontrol edelim. Yada kullandığınız formülünüzü ekleyin inceleyelim.
 
Katılım
20 Şubat 2006
Mesajlar
259
Ornek aşağıda verilmiştir arkadaşlar. Yapacağım projenin küçük bir detayı. kartlar kısmındaki yerde her kişinin ID numarasına göre kart açılacak ve o kişinin kişisel bilgileri o kartın içine yerleşecek
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Bir önceki mesajımda verdiğim kodda AA1 hücresine yazılan sayfa adı formatını metin olarak ayarlamıştım o mesajımdaki kodu yeniledim kontrol edermisiniz.
 
Katılım
17 Şubat 2006
Mesajlar
981
Excel Vers. ve Dili
M.Office Excel 2003 Tr.
COST_CONTROL' Alıntı:
Kod:
Sub SAYFA_EKLE()
    Application.ScreenUpdating = False
    Say = Worksheets.Count
    For X = Say To Say 
    Sheets("VERİ").Select
    Sheets("VERİ").Copy After:=Sheets(Worksheets.Count)
    ActiveSheet.Shapes("Button 8").Delete
    ActiveSheet.Name = Format(X, "00")
    ActiveSheet.[F1].Select
        Selection.NumberFormat = "00"
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    ActiveSheet.[F1] = ActiveSheet.Name
    Next
    Sheets("VERİ").Select
    Application.ScreenUpdating = True
End Sub

Herkese iyi akşamlar
Sn COST CONTROL'un yazmış olduğu kodlarda istediğim düzenlemeyi yapamadım.
İstediğim şu şekil ; ben 1 sayfa ilave etmek istiyorum ve sayfa adı olarak "F1" hücresindeki rakamı YAZACAK ama bu arada veri sayfamdaki rakam 5 olacak. Yeni eklenen sayfa "VERİ" sayfası ile daha önce eklenen sayfanın arasında olacak. Şekil biraz daha açık.
İlgilenen tüm arkadaşlara teşekkür ederim.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,349
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
"Next" in hemen altına aşağıdaki satırı ilave edin.
ActiveSheet.Move After:=Sheets("VERİ")
 
Katılım
17 Şubat 2006
Mesajlar
981
Excel Vers. ve Dili
M.Office Excel 2003 Tr.
sn. anemos
İlginiz için teşekkür ederim. İstediğim şekilde oldu ama yine "F1" hücresindeki değeri okutamadım. F1 hücrsinde 35 yazıyorum sayfa yı eklerken 1 den başlıyor. sn COST CONTROL un son mesajındaki düzeltmeyi açamadım belki onu incelersem düzelebilir.
Tekrar teşekkür ederim.
 
Üst