Soru Sayfa içeriği koruması

SFBYAPIM

Altın Üye
Katılım
12 Ocak 2017
Mesajlar
33
Excel Vers. ve Dili
Türkçe 2010
Altın Üyelik Bitiş Tarihi
08-09-2025
Excel kitabında "Fx1" adlı sayfayı kullanıcı istediği gibi kullanabilsin ancak sayfa değişikliği olduğunda veya dosya kapandığında ilk haline dönsün istiyorum. Sayfanın ilk haline dönmesini sayfanın içindeki buton yardımı ile de tetiklenebilmesini istiyorum.

Böyle bir şey mümkün mü? Yapay zekaya dolaylı yollardan birkaç farklı şekilde sordum ancak yazdığı hiçbir kod tam anlamıyla çalışmadı.
 

tugkan

Altın Üye
Katılım
6 Kasım 2004
Mesajlar
314
Excel Vers. ve Dili
Excel 2016
Türkçe 64 BIT
Altın Üyelik Bitiş Tarihi
16-10-2025
Merhaba aşağıdaki kodu dener misiniz

Bu isteği gerçekleştirmek için Excel'de VBA (Visual Basic for Applications) kullanarak "Fx1" sayfasının başlangıç durumuna geri dönebilirsiniz. Aşağıda bu işlemi adım adım nasıl yapabileceğinizi açıklıyorum:
Adım 1: Sayfanın İlk Halini Kaydetme
  1. Fx1 Sayfasında Gerekli Bilgileri Belirleyin: Sayfanın başlangıç halini belirlemek için bu sayfada bulunan tüm hücreleri bir aralık olarak seçin ve bu aralığın içeriğini bir değişkene kaydedin.
  2. VBA Editor'ü Açın: Excel'de ALT + F11 tuşlarına basarak VBA editörünü açın.
  3. Sayfa Kodunu Ekleme:
    • Sol taraftaki proje penceresinden "Fx1" sayfasına sağ tıklayın ve "Kod Görünümü" seçeneğini seçin.
    • Aşağıdaki kodu ekleyin:
Kod:
Dim originalState As Variant

Private Sub Worksheet_Activate()
    ' Sayfa aktif olduğunda orijinal durumu kaydet
    originalState = Me.UsedRange.Value
End Sub

Private Sub Worksheet_Deactivate()
    ' Sayfa kapatıldığında veya başka bir sayfaya geçildiğinde başlangıç durumuna dön
    Me.UsedRange.Value = originalState
End Sub

Sub ResetToOriginalState()
    ' Kullanıcı butona tıkladığında başlangıç durumuna dön
    Me.UsedRange.Value = originalState
End Sub
Adım 2: Buton Ekleme
  1. Buton Ekleme: Fx1 sayfasına geri dönün.
    • "Geliştirici" sekmesine gidin (eğer görünmüyorsa "Dosya" > "Seçenekler" > "Şeridi Özelleştir" menüsünden Geliştirici sekmesini etkinleştirin).
    • "Ekle" seçeneğinden "Form Kontrolleri" bölümünde "Buton"u seçin.
    • Sayfaya bir buton çizin.
  2. Makro Atama: Butona sağ tıklayın ve "Makro Ata" seçeneğini seçin.
    • Açılan pencereden ResetToOriginalState makrosunu seçin ve "Tamam" butonuna basın.
Sonuç
Artık "Fx1" sayfasında kullanıcı istediği değişiklikleri yapabilir. Sayfa değiştiğinde veya dosya kapandığında otomatik olarak başlangıç durumuna dönecek. Ayrıca, butona tıklayarak da başlangıç durumuna geri dönebilir.
 

SFBYAPIM

Altın Üye
Katılım
12 Ocak 2017
Mesajlar
33
Excel Vers. ve Dili
Türkçe 2010
Altın Üyelik Bitiş Tarihi
08-09-2025
hocam gpt nin yaptıkları gibi oldu, sayfa değişikliği olduğu an sayfa içeriğini komple siliyor(yalnızca hücre değerlerini ve formüllerini), başlangıçtaki halini almıyor
 

tugkan

Altın Üye
Katılım
6 Kasım 2004
Mesajlar
314
Excel Vers. ve Dili
Excel 2016
Türkçe 64 BIT
Altın Üyelik Bitiş Tarihi
16-10-2025
Peki daha basit bir yöntem deneseniz. Dosyayı salt okunur olarak açsalar?
 

SFBYAPIM

Altın Üye
Katılım
12 Ocak 2017
Mesajlar
33
Excel Vers. ve Dili
Türkçe 2010
Altın Üyelik Bitiş Tarihi
08-09-2025
Peki daha basit bir yöntem deneseniz. Dosyayı salt okunur olarak açsalar?
içerisinde yaklaşık 20 sayfa var ve çoğu bir birisi ile uyumlu çalışıyor sayfaların. Benim ihtiyacım olan sadece o sayfanın değişmemesi.
 

tugkan

Altın Üye
Katılım
6 Kasım 2004
Mesajlar
314
Excel Vers. ve Dili
Excel 2016
Türkçe 64 BIT
Altın Üyelik Bitiş Tarihi
16-10-2025
Chatgpt'ye sordum aşağıdaki yanıtı verdi umarım işinizi görür.

Eğer bir Excel dosyasında birden fazla sayfanız varsa ve sadece belirli bir sayfanın değişikliklerini sabit tutmak istiyorsanız, diğer sayfalardaki değişikliklere rağmen bu belirli sayfanın her zaman orijinal durumuna dönmesini sağlamak için VBA kullanarak aşağıdaki adımları izleyebilirsiniz.

Adım 1: Orijinal Sayfa Durumunu Kaydetme
  1. Orijinal Sayfayı Belirleyin: Örneğin, sabit kalacak sayfanın adı "Fx1" olsun.
  2. VBA Editor'ü Açın: Excel'de ALT + F11 tuşlarına basarak VBA editörünü açın.
  3. Bu Kitap Modülüne Kodu Ekleyin:
    • Sol taraftaki proje penceresinde "Bu Kitap" seçeneğine sağ tıklayın ve "Kod Görünümü" seçeneğini seçin.
    • Aşağıdaki kodu ekleyin:
Kod:
Dim originalState As Variant

Private Sub Workbook_Open()
    ' Çalışma kitabı açıldığında orijinal durumu kaydet
    originalState = ThisWorkbook.Worksheets("Fx1").UsedRange.Value
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    ' Herhangi bir sayfadan çıkıldığında belirli sayfanın başlangıç durumuna dön
    If Sh.Name <> "Fx1" Then
        ThisWorkbook.Worksheets("Fx1").UsedRange.Value = originalState
    End If
End Sub

Sub ResetFx1()
    ' Kullanıcı butona tıkladığında belirli sayfayı başlangıç durumuna döndür
    ThisWorkbook.Worksheets("Fx1").UsedRange.Value = originalState
End Sub
Adım 2: Buton Ekleme
  1. Buton Ekleme: Fx1 sayfasına geri dönün.
    • "Geliştirici" sekmesine gidin (eğer görünmüyorsa "Dosya" > "Seçenekler" > "Şeridi Özelleştir" menüsünden Geliştirici sekmesini etkinleştirin).
    • "Ekle" seçeneğinden "Form Kontrolleri" bölümünde "Buton"u seçin.
    • Sayfaya bir buton çizin.
  2. Makro Atama: Butona sağ tıklayın ve "Makro Ata" seçeneğini seçin.
    • Açılan pencereden ResetFx1 makrosunu seçin ve "Tamam" butonuna basın.
Sonuç
  • Bu kod, "Fx1" sayfasındaki verileri, dosya açıldığında kaydeder ve diğer sayfalardan çıkıldığında bu sayfayı orijinal durumuna döndürür.
  • Ayrıca, butona tıklayarak da "Fx1" sayfasını başlangıç durumuna geri döndürebilirsiniz.
 

SFBYAPIM

Altın Üye
Katılım
12 Ocak 2017
Mesajlar
33
Excel Vers. ve Dili
Türkçe 2010
Altın Üyelik Bitiş Tarihi
08-09-2025
Chatgpt'ye sordum aşağıdaki yanıtı verdi umarım işinizi görür.

Eğer bir Excel dosyasında birden fazla sayfanız varsa ve sadece belirli bir sayfanın değişikliklerini sabit tutmak istiyorsanız, diğer sayfalardaki değişikliklere rağmen bu belirli sayfanın her zaman orijinal durumuna dönmesini sağlamak için VBA kullanarak aşağıdaki adımları izleyebilirsiniz.

Adım 1: Orijinal Sayfa Durumunu Kaydetme
  1. Orijinal Sayfayı Belirleyin: Örneğin, sabit kalacak sayfanın adı "Fx1" olsun.
  2. VBA Editor'ü Açın: Excel'de ALT + F11 tuşlarına basarak VBA editörünü açın.
  3. Bu Kitap Modülüne Kodu Ekleyin:
    • Sol taraftaki proje penceresinde "Bu Kitap" seçeneğine sağ tıklayın ve "Kod Görünümü" seçeneğini seçin.
    • Aşağıdaki kodu ekleyin:
Kod:
Dim originalState As Variant

Private Sub Workbook_Open()
    ' Çalışma kitabı açıldığında orijinal durumu kaydet
    originalState = ThisWorkbook.Worksheets("Fx1").UsedRange.Value
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    ' Herhangi bir sayfadan çıkıldığında belirli sayfanın başlangıç durumuna dön
    If Sh.Name <> "Fx1" Then
        ThisWorkbook.Worksheets("Fx1").UsedRange.Value = originalState
    End If
End Sub

Sub ResetFx1()
    ' Kullanıcı butona tıkladığında belirli sayfayı başlangıç durumuna döndür
    ThisWorkbook.Worksheets("Fx1").UsedRange.Value = originalState
End Sub
Adım 2: Buton Ekleme
  1. Buton Ekleme: Fx1 sayfasına geri dönün.
    • "Geliştirici" sekmesine gidin (eğer görünmüyorsa "Dosya" > "Seçenekler" > "Şeridi Özelleştir" menüsünden Geliştirici sekmesini etkinleştirin).
    • "Ekle" seçeneğinden "Form Kontrolleri" bölümünde "Buton"u seçin.
    • Sayfaya bir buton çizin.
  2. Makro Atama: Butona sağ tıklayın ve "Makro Ata" seçeneğini seçin.
    • Açılan pencereden ResetFx1 makrosunu seçin ve "Tamam" butonuna basın.
Sonuç
  • Bu kod, "Fx1" sayfasındaki verileri, dosya açıldığında kaydeder ve diğer sayfalardan çıkıldığında bu sayfayı orijinal durumuna döndürür.
  • Ayrıca, butona tıklayarak da "Fx1" sayfasını başlangıç durumuna geri döndürebilirsiniz.
Hocam zaten sorabileceğim nerdeyse tüm türevlerde ben gpt ye sordum ve yanıtların hiçbirisi işe yaramadığı için buraya konu açtım. Yine de ilgiliniz için teşekkür ederim. Diğerleri gibi bu da sayfa içeriğini silmek dışında bir şey yapmadı
 
Üst