Hücreden Sayfa Adı oluşturma

ERMAN SAYINALP

Altın Üye
Katılım
11 Eylül 2008
Mesajlar
173
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
08-09-2027
Merhaba,

Sayfa Adlarını Tablodaki Hücrelere girerek oluşturmak mümkün müdür ?
Bunun tam tersinin yapılma yöntemini biliyorum, yani Sayfa Adlarını Tabloya aldırma işlemi mümkün.

Örneğin 50 adet sayfam var. Sayfa1, Sayfa2, Sayfa3 ........ Sayfa49, Sayfa50 gibi

Oluşturacağım A1:A50 Sütundaki Hücrelerde, A1 Hücresine ADANA girdiğimde, Sayfa1 adı ADANA olacak, A6 Hücresine SİVAS girdiğimde Sayfa6 adı SİVAS olacak.

Varsa çözümünü rica ederim.
 
Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
Aşağıdaki kodu deneyin
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range
    Dim cell As Range
    Set rng = Range("A1:A50")
    
    If Not Intersect(Target, rng) Is Nothing Then
        For Each cell In Intersect(Target, rng)
            Sheets("Sayfa" & cell.Row).Name = cell.Value
        Next cell
    End If
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,791
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Arkadaşım,
Alternatif olsun
Kod:
Sub SayfaAdiDegis()
    For x = 1 To Sheets.Count - 1
        Sheets(x).Name = Cells(x, 1).Value
    Next
End Sub
51. sayfanın A sütununa yazacağınız isimleri Sayfa1 den Sayfa50 ye kadar değiştirir. Lütfen makroyu 51. sayfada iken çalıştırınız.
İyi çalışmalar
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sayfa isimlendirirken excelin 31 karakter sınırı bulunmaktadır. Bu kurala uyarak kodu revize ederseniz hatasız sonuçlar alabilirsiniz.

Bu satır yerine;

C++:
Sheets(x).Name = Cells(x, 1).Value

Aşağıdaki gibi kullanmak daha faydalı olacaktır.

C++:
Sheets(x).Name = Left(Cells(x, 1).Value, 31)
 

ERMAN SAYINALP

Altın Üye
Katılım
11 Eylül 2008
Mesajlar
173
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
08-09-2027
Aşağıdaki kodu deneyin
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range
    Dim cell As Range
    Set rng = Range("A1:A50")
   
    If Not Intersect(Target, rng) Is Nothing Then
        For Each cell In Intersect(Target, rng)
            Sheets("Sayfa" & cell.Row).Name = cell.Value
        Next cell
    End If
End Sub
Teşekkür ederim, elinize sağlık...
 

ERMAN SAYINALP

Altın Üye
Katılım
11 Eylül 2008
Mesajlar
173
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
08-09-2027
Merhaba Arkadaşım,
Alternatif olsun
Kod:
Sub SayfaAdiDegis()
    For x = 1 To Sheets.Count - 1
        Sheets(x).Name = Cells(x, 1).Value
    Next
End Sub
51. sayfanın A sütununa yazacağınız isimleri Sayfa1 den Sayfa50 ye kadar değiştirir. Lütfen makroyu 51. sayfada iken çalıştırınız.
İyi çalışmalar
İlginize teşekkür ederim, lakin hata alıyorum. (ekteki resim)
 

Ekli dosyalar

ERMAN SAYINALP

Altın Üye
Katılım
11 Eylül 2008
Mesajlar
173
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
08-09-2027
Sayfa isimlendirirken excelin 31 karakter sınırı bulunmaktadır. Bu kurala uyarak kodu revize ederseniz hatasız sonuçlar alabilirsiniz.

Bu satır yerine;

C++:
Sheets(x).Name = Cells(x, 1).Value

Aşağıdaki gibi kullanmak daha faydalı olacaktır.

C++:
Sheets(x).Name = Left(Cells(x, 1).Value, 31)
Korhan bey,

Tevfik bey'in yardımına yaptığınız katkı ile birlikte denediğimde de ekteki hatayı alıyorum..
Diğer taraftan RecepKull'un çözümü çalışıyor...
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Çalışıyor dediğiniz kod önerisi içinde 31 karakter kuralı geçerlidir.

Yani hücrede 32 karakterlik bir isim olması durumunda çalışıyor dediğiniz kodda hata verecektir.

Ayrıca hata veren satırda hatanın içeriği önemlidir. Büyük ihtimalle iki sayfaya aynı isim vermeye çalışıyor olabilirsiniz. Ya da sayfa adında geçersiz karakter bulunuyor olabilir.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,791
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Altın üyesiniz, örneğinizi eklemiş olsanız çözüm çok daha kolay olurdu.
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
545
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Sayfa isimlendirirken excelin 31 karakter sınırı bulunmaktadır. Bu kurala uyarak kodu revize ederseniz hatasız sonuçlar alabilirsiniz.

Bu satır yerine;

C++:
Sheets(x).Name = Cells(x, 1).Value

Aşağıdaki gibi kullanmak daha faydalı olacaktır.

C++:
Sheets(x).Name = Left(Cells(x, 1).Value, 31)

Korhan hocam merhaba
Recepkul hocamın kodunda bahsettiğiniz yeri 31 olarak yaptım fakat hata verdi.

Kod:
Sheets("Sayfa" & cell.Row).Name = Left(cell.Value, 31)
 

ERMAN SAYINALP

Altın Üye
Katılım
11 Eylül 2008
Mesajlar
173
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
08-09-2027
Çalışıyor dediğiniz kod önerisi içinde 31 karakter kuralı geçerlidir.

Yani hücrede 32 karakterlik bir isim olması durumunda çalışıyor dediğiniz kodda hata verecektir.

Ayrıca hata veren satırda hatanın içeriği önemlidir. Büyük ihtimalle iki sayfaya aynı isim vermeye çalışıyor olabilirsiniz. Ya da sayfa adında geçersiz karakter bulunuyor olabilir.
Örnek Dosya ektedir...
 

Ekli dosyalar

Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
Örneğin 50 adet sayfam var. Sayfa1, Sayfa2, Sayfa3 ........ Sayfa49, Sayfa50 gibi
Bence sizin hata alıyor olmanızın sebebi sayfa isminin bulunamıyor olmasıdır. Mesela A10 hücresinde işlem yapıyorsanız Sayfa10 adında bir sayfanızın olması lazım aksi halde hata alırsınız.
 

ERMAN SAYINALP

Altın Üye
Katılım
11 Eylül 2008
Mesajlar
173
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
08-09-2027
Merhaba,
Varsayımınız doğru değil. Örnek dosya aslı gibidir...
 
Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
Ben vermiş olduğum kodda herhangi bir hata almıyorum. Sizin istediğiniz gibi çalışıyor.
 

ERMAN SAYINALP

Altın Üye
Katılım
11 Eylül 2008
Mesajlar
173
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
08-09-2027
Pardon yanıtım size değildi, özür diliyorum.
Size sadece teşekkür etmiştim.
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Öncelikle şunu belirtmemde fayda var.

Ben sayfa ismindeki 31 karakterlik sınırlama için örnek verirken #3 nolu mesajdaki koddan alıntı yaparak örneklendirdim. Bu tamamen bilgi amaçlı bir mesajdı. Yani #3 nolu mesajdaki kodun çözüm üretip üretmemesiyle ilgili değildir.

Ayrıca #3 nolu mesajda aşağıdaki gibi bir dipnot düşülmüş...

51. sayfanın A sütununa yazacağınız isimleri Sayfa1 den Sayfa50 ye kadar değiştirir. Lütfen makroyu 51. sayfada iken çalıştırınız.
İyi çalışmalar
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,791
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Tartışmayı devam ettirmeye gerek yok. Hiç biri çok önemli değil, arkadaşımızın siteye koyduğu örneklere bakmak yeterli.
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
545
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Öncelikle şunu belirtmemde fayda var.

Ben sayfa ismindeki 31 karakterlik sınırlama için örnek verirken #3 nolu mesajdaki koddan alıntı yaparak örneklendirdim. Bu tamamen bilgi amaçlı bir mesajdı. Yani #3 nolu mesajdaki kodun çözüm üretip üretmemesiyle ilgili değildir.

Ayrıca #3 nolu mesajda aşağıdaki gibi bir dipnot düşülmüş...
Korhan hocam, Recepkul hocanın koduna da 31 karakter sınırı özelliğini ekleyebilr misiniz?
(Arşivimizde böyle bulunsun)
 
Üst