• DİKKAT

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

Sayfaların sırasını sabitleme

Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Merhaba hayırlı sabahlar.

Ekte gönderdiğim excel dosyamın alt sayfaları olan Sayfa1, Sayfa2, Sayfa3, Sayfa4, Sayfa5 sayfalarının
sırası sürekli kullanıcılar tarafından değiştiriliyor.

Benim istediğim bu sayfalar sürekli aynı sırada olmasını yani değiştirilmemesini istiyorum.
.
 

Ekli dosyalar

Merhaba;

Boş bir modüle;

Sub Auto_Open()
Sheets("Sayfa2").Move Before:=Sheets(1) ' 1.sıra için
Sheets("Sayfa3").Move Before:=Sheets(2) ' 2.sıra için
Sheets("Sayfa1").Move Before:=Sheets(3) ' 3.sıra için
Sheets("Sayfa2").Select 'açılışta aktif sayfa
End Sub

Ekleyerek dosyayı kaydedip kapatın ve yeniden açın.
NOT: siz sayfalarınızı ve sırasını kendinize göre düzenleyin.

İyi çalışmalar.
 
Merhaba,

Alternatif olsun.

Aşağıdaki kodları BuÇalışmaKitabı'nın kod bölümüne kopyalayınız.
Dosya kapandığında sayfalar sıralanacaktır.

Kod:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Dim i As Integer, _
        j As Integer
    
    If Sheets.Count = 1 Then Exit Sub
    
    For i = 1 To Sheets.Count - 1
        For j = i + 1 To Sheets.Count
            If Sheets(j).Name < Sheets(i).Name Then
                Sheets(j).Move before:=Sheets(i)
            End If
        Next j
    Next i
    
End Sub
 
Sayın muygun ve Necdet Bey, her iki kodda çok güzel çalışıyor.

Ellerinize sağlık, çok teşekkür ediyorum. Hayırlı günler diliyorum.
 
Sayın muygun, kusura bakmayın tekrar rahatsız ediyorum.

2 mesajda vermiş olduğunuz kodlar gayet güzel çalışıyor ve bazı dosyalarımda kullanıyorum, çok teşekkür ediyorum.

Bugün yeni fark ettim, bu kodu başka bir dosyaya ekledim, dosyamın bazı sayfalarının kod bölümünde bazı kodlar var.
Excel dosyasını ilk açmaya başladığımda bu mesajlar hep ekrana geliyor. Mesajlar ekrana gelmeden düzenleme yapabilir misiniz?

Açılış kodları
Kod:
Private Sub Workbook_Open()
Sheets("Sayfa2").Move Before:=Sheets(1) ' 1.sıra için
Sheets("Sayfa3").Move Before:=Sheets(2) ' 2.sıra için
Sheets("Sayfa1").Move Before:=Sheets(3) ' 3.sıra için
Sheets("Sayfa2").Select 'açılışta aktif sayfa
End Sub

Sayfalardaki kod örneği
Kod:
Private Sub Worksheet_Activate()
MsgBox "Merhaba"
End Sub
.
 

Ekli dosyalar

İlk ekrana gelen hatadan bahsediyorsanız,
Kod:
Private Sub Workbook_Open()
On Error Resume Next
Sheets("Sayfa2").Move Before:=Sheets(1) ' 1.sıra için
Sheets("Sayfa3").Move Before:=Sheets(2) ' 2.sıra için
Sheets("Sayfa1").Move Before:=Sheets(3) ' 3.sıra için
Sheets("Sayfa2").Select 'açılışta aktif sayfa
End Sub
Sayfa aktif olunca çıkan uyarıdan bahsediyorsanız
Kod:
Private Sub Worksheet_Activate()
'MsgBox "Merhaba"
End Sub
 
Sayın askm, ilginiz için çok teşekkür ediyorum, kodlarda sorun yok.

Açılırken ekrana 2 sefer Merhaba mesajı geliyor. Bu kod çalışırken bu mesajların gelmemesini istemiştim.

Verdiğim örnek sadece bir örnek, sayfalar aktif olunca başka kodlar çalışıyor.

Sizin dediğiniz gibi bunları tırnak işareti ile kapatırsam sayfalarda normal çalışırken kodlar çalışmayacak.
 
Bu tarz işlemlerde Boolean bir değişken ile çözüme gidebilirsiniz.

Örnek dosyayı inceleyiniz.
 

Ekli dosyalar

Sayın Korhan Bey, ellerinize sağlık şimdi tam istediğim gibi oldu, çok teşekkür ediyorum.

Hayırlı akşamlar.
 
Sayın Korhan Bey, rahatsız ediyorum kusuru bakmayın.

Sizin dediklerinizi kendi dosyama uyguladım hala aynı mesaj geliyor.

Dosyamı ekliyorum.
 
Son düzenleme:
"Kontrol" değişkenini dosyanızda hangi olayda kullandınız. Ben göremedim.

Sadece modüle eklemeniz yeterli değildir. Benim eklediğim dosyayı iyi inceleyiniz.
 
Sayın Korhan Bey, gönderdiğim excel dosyasındak 7.modülde bulunuyor. SayfaSıralaması makrosu.
 
Aşağıdaki komut'ta 8.modülde bulunuyor.

Public Kontrol As Boolean
 
Ben onları görebiliyorum.

"Kontrol" değişkenini kodlarınızın içinde kullanmalısınız ki sizin bahsettiğiniz uyarılar gelmesin. Eklediğim örnek dosyada sayfaların aktif olma olayındaki kod bölümünde kurguyu görebilirsiniz. Bu şekilde kendi dosyanıza uyarlamanız gerekiyor.
 
Anladım Korhan Bey çok teşekkür ediyorum.

Hayırlı geceler diliyorum.
 
Yapamam derseniz yardımcı olurum...
 
Kendi orijinal dosyamda dediğiniz gibi uyguladım, oldu.

Çok çok teşekkür ediyorum, hayırlı geceler.
 
Geri
Üst