• DİKKAT

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

Sayfa isimleri değiştirilmesin

Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
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:
Merhaba, kodlarla değilde Çalışma kitabını koruma altına alsanız?
kitabı_koru.png
 
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:
Kod bilgim malesef yok denecek kadar az. Konuya hakim arkadaşlarımız varsa bir yolu yardımcı olacaklardır.

Hayırlı geceler.
 
Sayın Ömer Bey, ellerinize sağlık çok teşekkür ediyorum, tam istediğim gibi çalışıyor.

Hayırlı geceler diliyorum.
 
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
 
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.
 
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.
 
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.
 
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.
 
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.
 
Dosyanın açılışında sayfa isimleri verdiğiniz örneğe uygun olsun istiyorsanız, ekli dosya işinize yarayabilir

.
 

Ekli dosyalar

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:
Ali Bey;

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

.
 
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?
 
Geri
Üst