Sayfa isimleri değiştirilmesin

Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
29.03.2025
Merhaba hayırlı bayramlar, hayırlı geceler.

Ekte gönderdiğim excel dosyamın sayfa isimlerini VBA ismi Sayfa1 olanı ALİ, Sayfa2 HASAN, Sayfa3 MEHMET ve Sayfa4 KEMAL olarak değiştirdim.

Bu dosya ortak kullanıldığı için sürekli sayfaların ya isimleri değişiyor, yada sayfa sırası değişiyor.

Yapmak istediğim sayfa isimleri ve sırasının değiştirilmesini istemiyorum,
yada dosya açıldığında sayfaların VBA tarafındaki isimlerine göre dizilsin ve verdiğim isimler tekrar aynı şekilde sayfa isimleri olarak değiştirilsin.

Kod:
Sub Auto_Open()
Sheets("ALİ").Move Before:=Sheets(1) ' 1.sıra için
Sheets("HASAN").Move Before:=Sheets(2) ' 2.sıra için
Sheets("MEHMET").Move Before:=Sheets(3) ' 3.sıra için
Sheets("KEMAL").Move Before:=Sheets(4) ' 4.sıra için
Sheets("ALİ").Select 'açılışta aktif sayfa
End Sub
Sayfa sıralaması için yukarıdaki kod var, ancak sayfa isimleri değişince hata veriyor, dosya açıldığında VBA tarafındaki sayfa isimlerine atamış olduğum isimler tekrar yazılırsa çözülür diye düşünüyorum.

Forumda ve internette araştırdım ancak böyle bir çalışma bulamadım.

Yardımcı olur musunuz?
 

Ekli dosyalar

Son düzenleme:

netzone

Altın Üye
Katılım
10 Mayıs 2006
Mesajlar
804
Excel Vers. ve Dili
🅾🅵🅵🅸🅲🅴
⎝2024 64 Bit 𝙏𝙍⎠
🆆🅸🅽🅳🅾🆆🆂
⎝11 64 Bit 𝙏𝙍⎠
Altın Üyelik Bitiş Tarihi
12-09-2027
Merhaba, kodlarla değilde Çalışma kitabını koruma altına alsanız?
kitabı_koru.png
 
Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
29.03.2025
Sayın netzone, ilginiz için çok teşekkür ediyorum, bu hiç aklıma gelmemişti, bu da fazlasıyla işimi görür.
Bu bir alternatif olsun.

Kodlarla bu dediğim yapılabilir mi?
 
Son düzenleme:

netzone

Altın Üye
Katılım
10 Mayıs 2006
Mesajlar
804
Excel Vers. ve Dili
🅾🅵🅵🅸🅲🅴
⎝2024 64 Bit 𝙏𝙍⎠
🆆🅸🅽🅳🅾🆆🆂
⎝11 64 Bit 𝙏𝙍⎠
Altın Üyelik Bitiş Tarihi
12-09-2027
Kod bilgim malesef yok denecek kadar az. Konuya hakim arkadaşlarımız varsa bir yolu yardımcı olacaklardır.

Hayırlı geceler.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Sanıyorum aşağıdaki gibi istediğiniz olyuor.
Sub CALISMA_KITABINI_KORU()
ActiveWorkbook.Protect Password:="123", Structure:=True, Windows:=True
End Sub
 
Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
29.03.2025
Sayın Ömer Bey, ellerinize sağlık çok teşekkür ediyorum, tam istediğim gibi çalışıyor.

Hayırlı geceler diliyorum.
 

netzone

Altın Üye
Katılım
10 Mayıs 2006
Mesajlar
804
Excel Vers. ve Dili
🅾🅵🅵🅸🅲🅴
⎝2024 64 Bit 𝙏𝙍⎠
🆆🅸🅽🅳🅾🆆🆂
⎝11 64 Bit 𝙏𝙍⎠
Altın Üyelik Bitiş Tarihi
12-09-2027
Merhaba,

Biraz kurcaladıktan sonra ilk mesajınızdaki sorunu gidermek için şöyle bir kod ortaya çıktı.

*Sayfa isimleri değişmiş olsada önce sayfa isimleri eski haline getiriliyor ardından sırasına taşınıyor.
** Atamalarda yolu uzatmış olabilirim (kod bilmeden kod yazınca böyle durumlar hoş karşılanmalı :))

Rich (BB code):
Sub Auto_Open()
Dim syf1 As String
Dim syf2 As String
Dim syf3 As String
Dim syf4 As String

syf1 = "ALİ"
syf2 = "HASAN"
syf3 = "MEHMET"
syf4 = "KEMAL"

Sheets(1).Name = syf1
Sheets(2).Name = syf2
Sheets(3).Name = syf3
Sheets(4).Name = syf4

Sheets("ALİ").Move Before:=Sheets(1) ' 1.sıra için
Sheets("HASAN").Move Before:=Sheets(2) ' 2.sıra için
Sheets("MEHMET").Move Before:=Sheets(3) ' 3.sıra için
Sheets("KEMAL").Move Before:=Sheets(4) ' 4.sıra için
Sheets("ALİ").Select 'açılışta aktif sayfa
End Sub
 
Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
29.03.2025
Sayın netzone kod için uğraşmışsınız, çok teşekkür ediyorum.

Gönderdiğim örnek sayfada ALİ sayfasını sona taşıyorum, sizin kodu da modüle ekleyip kaydedip kapatıp tekrar açtığımda debug hatası veriyor, mesaj içerisinde Bu ad zaten alınmış. Farklı bir tane deneyin. diye bir mesaj geliyor.
Debug'a bastığımda kod içerisinde Sheets(1).Name = syf1 bu kısmı sarıya boyuyor.
 
Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
29.03.2025
Sayfa sıralamasını karıştırmadan sayfa isimlerinde bir değişiklik yapıp dosyayı kaydedip kapatıp tekrar açtığımda kodlar güzel çalışıyor.

Ama dosyadaki sayfaların yerlerini değiştirip kapatıp tekrar açtığımda önceki mesajımda yazdığım gibi hata veriyor.
 

netzone

Altın Üye
Katılım
10 Mayıs 2006
Mesajlar
804
Excel Vers. ve Dili
🅾🅵🅵🅸🅲🅴
⎝2024 64 Bit 𝙏𝙍⎠
🆆🅸🅽🅳🅾🆆🆂
⎝11 64 Bit 𝙏𝙍⎠
Altın Üyelik Bitiş Tarihi
12-09-2027
Evet, siz belirtince farkettim. Sayfa sıralaması son halinde nasıl ise o şekilde sıra numarası alıyor.

Yani Ali (1.sayfa) sayfasını sona taşıdığınızda halen (1.sayfa) fakat kaydedip kapatıp açtığınızda (4.sayfa) olarak algılıyor bu nedenle sizin de belirttiğiniz gibi sayfa numarasından yola çıkarak isim atamamız, sıralamamız mümkün görünmüyor.

Sanırım buda şu şekilde çözülebilir. Sayfa içinde kullanım dışındaki bir alanda (örneğin x1 hücresine) sayfanın alacağı isim girilip kodlarla bu isim çekilir ve sıralamaya konulabilir. yada bu sayfa isimlerini atama işlemi modül değilde ilgili sayfalara yazılacak kod ile atama yaptırılabilir.
 
Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
29.03.2025
Sayın netzone, dediğiniz olabilir mi bilmiyorum, maalesef kod yazma bilgim hiç yok denecek kadar az.

Yine de ilginiz için çok teşekkür ediyorum, hayırlı geceler, hayırlı bayramlar diliyorum.
 
Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
29.03.2025
Sayın netzone, göndermiş olduğunuz kod sayfaların isimlerini yazarken isimler aynı olduğu için hata veriyordu galiba.
Sizin fikirlerinizden yola çıkarak kodu aşağıdaki gibi yapınca sorun çözüldü, kod önce farklı bir isim verip sonra istediğim isimleri veriyor, sonrada istediğim sıraya diziyor.

Belki başkalarınında işine yarayabilir diye ekliyorum.

Kod:
Private Sub Workbook_Open()
Sheets(1).Name = "A"
Sheets(2).Name = "B"
Sheets(3).Name = "C"
Sheets(4).Name = "D"

Sheets(1).Name = "ALİ"
Sheets(2).Name = "HASAN"
Sheets(3).Name = "MEHMET"
Sheets(4).Name = "KEMAL"

Sheets("ALİ").Move Before:=Sheets(1)
Sheets("HASAN").Move Before:=Sheets(2)
Sheets("MEHMET").Move Before:=Sheets(3)
Sheets("KEMAL").Move Before:=Sheets(4)
Sheets("ALİ").Select
End Sub
Fikirleriniz ve yardımlarınız için çok teşekkür ediyorum.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Dosyanın açılışında sayfa isimleri verdiğiniz örneğe uygun olsun istiyorsanız, ekli dosya işinize yarayabilir

.
 

Ekli dosyalar

Katılım
12 Aralık 2015
Mesajlar
1,215
Excel Vers. ve Dili
Türkçe Ofis 2007
Vba sayfası açık iken sol üste Project - VBAProject Penceresinde Varsayılan olarak
Sayfa1(Sayfa1) şeklinde isimler vardır.
Baştaki Sayfa1 Codename dir. En üsteki name özelliği ancak tasarım halinde iken manuel olarak değiştirilebilinir. Bu değişiklik normal sayfa açık iken görünmez. Buradan Codename leri değiştirin.
Kod:
For i =1 to Sheets.count
Sheets(i).name = Sheets(i).CodeName
Next
Yukardaki kodu Kitabın Open olayına yapıştırın
 
Son düzenleme:

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Ali Bey;

13 No'lu mesajımın ekindeki dosyada bu konu işlenmişti. ;)

.
 
Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
29.03.2025
Sayın Haluk Bey, ilginiz için çok teşekkür ediyorum.

Dosyanın VBA tarafındaki sayfa isimlerini manuel olarak nereden değiştirdiniz, bir türlü bulamadım.
Bu işlemleri nasıl yaptınız?
 
Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
29.03.2025
Sayın alicimri ve turist size de çok teşekkür ediyorum.
 
Üst