• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Otomatik Adlandırma

Katılım
29 Kasım 2007
Mesajlar
1,110
Excel Vers. ve Dili
excel 2007
Burada "HAZİRAN" sayfasını taşıyıp kopyalama yaptığımda yeni sayfanın "TEMMUZ, AĞUSTOS… vs" otomatik olarak adlandırılmasını sağlamak istiyorum.
 

Ekli dosyalar

Kodu, Dosyanın ThisWorkBook kısmına ekleyin.
Kod:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
    arr = Array("OCAK", "ŞUBAT", "MART", "NİSAN", "MAYIS", "HAZİRAN", "TEMMUZ", "AĞUSTOS", "EYLÜL", "EKİM", "KASIM", "ARALIK")
    For i = 0 To UBound(arr)
        If arr(i) = Sh.Previous.Name Then
            Sh.Name = arr(i + 1)
            Sh.Previous.Cells.Copy Sh.[a1]
        End If
    Next
End Sub
 
Sayın hamitcan ilginize teşekkür ederim. Verdiğiniz kodu ekledim ama isimler değişmiyor. Mayıs ise mayıs(2) oluyor.
 
Taşı veya Kopyala yapmayacaksınız, sadece sayfa ekleyeceksiniz.
 
Sayfa isimlerinin kod içindeki yazılışları ile aynı olmasına dikkat ediniz.
 
Dediğiniz gibi sadece sayfa eklemeye çalıştım EK'teki mesajı aldım.
 

Ekli dosyalar

  • Adsız.png
    Adsız.png
    106.8 KB · Görüntüleme: 6
İlginize çok teşekkür ederim. Sayfa eklerken olduğu gibi kopyalanmasını sağlamak mümkün mü? Çünkü sayfa yapısı bozuluyor.
 
Son düzenleme:
Kodu sayfa içinde bir butona bağlayıp kullanabilirsiniz.
Kod:
Sub TasiKopyala()
    ActiveSheet.Copy Before:=Sheets(1)
    arr = Array("OCAK", "ŞUBAT", "MART", "NİSAN", "MAYIS", "HAZİRAN", "TEMMUZ", "AĞUSTOS", "EYLÜL", "EKİM", "KASIM", "ARALIK")
    For i = 0 To UBound(arr)
        If arr(i) = ActiveSheet.Next.Name Then
            ActiveSheet.Name = arr(i + 1)
        End If
    Next
End Sub
 
Buton ekleyerek yaptım ama HAZİRAN, TEMMUZ, AĞUSTOS .... sağa doğru sıralayıp gitmesi gerekirken sola doğru AĞUSTOS, TEMMUZ, HAZİRAN gibi sıralıyor.
 
Ben olsam o kadar takmazdım. Kodu burada değiştirdim bir de böyle deneyin.
Kod:
Sub TasiKopyala()
    ActiveSheet.Copy After:=Sheets(1)
    arr = Array("OCAK", "ŞUBAT", "MART", "NİSAN", "MAYIS", "HAZİRAN", "TEMMUZ", "AĞUSTOS", "EYLÜL", "EKİM", "KASIM", "ARALIK")
    For i = 0 To UBound(arr)
        If arr(i) = ActiveSheet.Previous.Name Then
            ActiveSheet.Name = arr(i + 1)
        End If
    Next
End Sub
 
İlginize teşekkür ederim.
 
Geri
Üst