Hücrede Yazan Verilere Göre Şablon Oluşturmak

ozlem.solmaz

Altın Üye
Katılım
22 Mart 2019
Mesajlar
14
Excel Vers. ve Dili
office 2013 - türkçe
Altın Üyelik Bitiş Tarihi
22-04-2026
Merhaba,

Ekteki dosyamda Veri sayfasında ki bulunan sayılara göre şablon oluşturmak istiyorum.

C3 hücresinde ki isim için ayrı bir şablon (örnek şablon koydum ) Sayfa adı ve Şablonda ki B3 hücresi aynı olmalıdır.

Örnek olarak ben sayfaları oluşturdum fakat liste uzayacağı için koda ihtiyacım vardır.

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

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,165
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Veri sayfasının kod kısmına kopyalayıp çalıştırın.

Kod:
Sub YeniSablon()
    Dim Bak As Long
    Application.ScreenUpdating = False
    For Bak = 3 To Worksheets("VERİ").Cells(Rows.Count, "C").End(xlUp).Row
        Worksheets("ÖRNEK_ŞABLON").Copy After:=Sheets(Worksheets.Count)
        With Worksheets("VERİ")
            ActiveSheet.Range("B3") = .Cells(Bak, "C")
            ActiveSheet.Name = .Cells(Bak, "C")
        End With
    Next
    Application.ScreenUpdating = True
End Sub
 
Son düzenleme:

ozlem.solmaz

Altın Üye
Katılım
22 Mart 2019
Mesajlar
14
Excel Vers. ve Dili
office 2013 - türkçe
Altın Üyelik Bitiş Tarihi
22-04-2026
Merhaba,

Hocam hata veriyor kod. Veri kısmında ki yazan isimleri almıyor.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,165
Excel Vers. ve Dili
2019 Türkçe
Kodu yeniledim. Tekrar deneyin.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,354
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Alternatif olsun.
Aşağıdaki kodları bir modüle kopyalayıp deneyiniz.

Kod:
Sub Sayfa_Kopyala_Ac()

Dim i   As Long
Dim lr  As Long
Dim adt As Integer
Dim syf As String

Application.ScreenUpdating = False

lr = Sayfa1.Cells(Rows.Count, "C").End(3).Row
'Aşağıdaki gibi de kullanılabilir
'lr = sheets("VERİ").Cells(Rows.Count, "C").End(3).Row
If lr < 3 Then lr = 3

For i = 3 To lr
    syf = Sayfa1.Cells(i, "C")
    If Not SayfaVarMi(syf) Then
        adt = adt + 1
        Sayfa2.Copy After:=Worksheets(Worksheets.Count)
        ActiveSheet.Name = syf
        Range("B3") = syf
    End If
Next i

Sayfa1.Select
Application.ScreenUpdating = True

If adt = 0 Then
    MsgBox "Açılacak Yeni Sayfa Bulunmadı...."
Else
    MsgBox adt & " Adet Sayfa Açılmıştır..."
    
End If

End Sub

Function SayfaVarMi(SayfaAdi As String) As Boolean
    On Error Resume Next
    SayfaVarMi = CBool(Len(Worksheets(SayfaAdi).Name) > 0)
End Function
 
Üst