Soru Çalışma sayfasındaki bütün formülleri tek seferde kilitleyip sabitleme?

kar67970

Altın Üye
Katılım
27 Ocak 2011
Mesajlar
43
Excel Vers. ve Dili
bazen 2010 TR, bazen de 2016 TR kullanıyorum. Şu an 2010 TR yüklü
Altın Üyelik Bitiş Tarihi
02-07-2025
Hayırlı günler. Hücredeki bir formülü F4 tuşu ile kilitleyebiliyoruz. Ancak; mesela bir çalışma sayfasında bulunan 50 - 100 tane hücredeki formüllerin hepsini, ayrı ayrı F4 ler ile yapmak yerine çalışma sayfasındaki bütün formülleri tek seferde kilitleyip nasıl sabitleyebiliriz? Bu mümkün mü? Mümkünse nasıl yapıldığını arkadaşlar ve değerli uzman hocalarımız adım adım anlatabilir mi? Yardımlarınız için şimdiden çok teşekkür ederim.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,642
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub convertAbsoluteReferenceStyle()

    Dim r As Range, bulundu As Boolean

    If WorksheetFunction.CountA(Cells) > 0 Then

        For Each r In ActiveSheet.UsedRange
            If r.HasFormula Then
                bulundu = True
                Exit For
            End If
        Next

        If bulundu Then
            For Each r In ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas, 23)
                r.Formula = Application.ConvertFormula(r.Formula, XlReferenceStyle.xlA1, XlReferenceStyle.xlA1, 1)
            Next
        Else
            MsgBox "Sayfada formül kullanılmamış..", , "Hata"
            Exit Sub
        End If

        MsgBox "İşlem tamam.", , "OK.."
    Else
        MsgBox "Sayfada veri yok..", , "Hata"
    End If

End Sub
 
Son düzenleme:

kar67970

Altın Üye
Katılım
27 Ocak 2011
Mesajlar
43
Excel Vers. ve Dili
bazen 2010 TR, bazen de 2016 TR kullanıyorum. Şu an 2010 TR yüklü
Altın Üyelik Bitiş Tarihi
02-07-2025
Hocam hayırlı akşamlar. Makroyu sayfaya makro olarak kaydettim. Çok teşekkür ederim. Ancak makro otomatik olarak kendisi mi çalışacak, yada biz dışarıdan nasıl komut vereceğiz?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,167
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Önerilen kodu bir butona tanımlayıp kullanabilirsiniz.

Eğer alan seçerek yapmak isterseniz alternatif olarak aşağıdaki kodu deneyebilirsiniz. Yine bir butona tanımlayıp kullanabilirsiniz.

C++:
Option Explicit

Sub Relative_to_Absolute()
    Dim My_Cell As Range, Formullu_Alan As Range
    
    Application.Calculation = xlCalculationManual
    
    On Error Resume Next
    Set Formullu_Alan = Selection.Cells.SpecialCells(xlFormulas)
    On Error GoTo 0
    
    If Formullu_Alan Is Nothing Then
        MsgBox "Seçtiğiniz alanda formül içeren hücre bulunamadı!", vbCritical
        Exit Sub
    End If
    
    For Each My_Cell In Formullu_Alan
        My_Cell.Formula = Application.ConvertFormula(My_Cell.Formula, xlA1, xlA1, xlAbsolute)
    Next

    Application.Calculation = xlCalculationAutomatic
    
    MsgBox "İşleminiz tamamlanmıştır."
End Sub
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Belli bir aralığı kilitlemeyi makro kullanmadanda yapabiliyorsunuz,biliyormusunuz?
Forumda araştırabilirsiniz.
 

kar67970

Altın Üye
Katılım
27 Ocak 2011
Mesajlar
43
Excel Vers. ve Dili
bazen 2010 TR, bazen de 2016 TR kullanıyorum. Şu an 2010 TR yüklü
Altın Üyelik Bitiş Tarihi
02-07-2025
Hocam hayırlı akşamlar. Forumda araştırdım, ancak bulamadım. Nasıl yapabileceğimi veya forumda hangi anahtar kelime ile araştırabileceğim konusunda yol gösterirseniz çok memnun olurum. Ben excel'de makro yazılımı ve kullanımı ile makro çalıştırma butonu atamasını bilmiyorum. Birde, çalışma kitabına makroyu nasıl kaydedeceğimizi bilmiyorum. Çalıştığım excel dosyasına bana verilen iki ayrı makroyu kaydettim, ancak çalışmıyor. Makroları xslm uzantısı ile kaydetti. Bana makro kaydetme ile makro çalıştırma butonu atamasını adım adım anlatır mısınız? Şimdiden çok teşekkür ederim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,167
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
@Orion1,

Üyemiz hücredeki formülün sabitlenmesi konusunda destek talebinde bulunmuş.

=A1 ifadesinin =$A$1 şekline dönüşmesini talep etmiş.
 

kar67970

Altın Üye
Katılım
27 Ocak 2011
Mesajlar
43
Excel Vers. ve Dili
bazen 2010 TR, bazen de 2016 TR kullanıyorum. Şu an 2010 TR yüklü
Altın Üyelik Bitiş Tarihi
02-07-2025
Kod:
Sub convertAbsoluteReferenceStyle()

    Dim r As Range, bulundu As Boolean

    If WorksheetFunction.CountA(Cells) > 0 Then

        For Each r In ActiveSheet.UsedRange
            If r.HasFormula Then
                bulundu = True
                Exit For
            End If
        Next

        If bulundu Then
            For Each r In ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas, 23)
                r.Formula = Application.ConvertFormula(r.Formula, XlReferenceStyle.xlA1, XlReferenceStyle.xlA1, 1)
            Next
        Else
            MsgBox "Sayfada formül kullanılmamış..", , "Hata"
            Exit Sub
        End If

        MsgBox "İşlem tamam.", , "OK.."
    Else
        MsgBox "Sayfada veri yok..", , "Hata"
    End If

End Sub
 

kar67970

Altın Üye
Katılım
27 Ocak 2011
Mesajlar
43
Excel Vers. ve Dili
bazen 2010 TR, bazen de 2016 TR kullanıyorum. Şu an 2010 TR yüklü
Altın Üyelik Bitiş Tarihi
02-07-2025
Hocam çok teşekkür ederim. Tüm kodlar çalışıyor. hakkınızı helal edin.
 

kar67970

Altın Üye
Katılım
27 Ocak 2011
Mesajlar
43
Excel Vers. ve Dili
bazen 2010 TR, bazen de 2016 TR kullanıyorum. Şu an 2010 TR yüklü
Altın Üyelik Bitiş Tarihi
02-07-2025
Önerilen kodu bir butona tanımlayıp kullanabilirsiniz.

Eğer alan seçerek yapmak isterseniz alternatif olarak aşağıdaki kodu deneyebilirsiniz. Yine bir butona tanımlayıp kullanabilirsiniz.

C++:
Option Explicit

Sub Relative_to_Absolute()
    Dim My_Cell As Range, Formullu_Alan As Range
 
    Application.Calculation = xlCalculationManual
 
    On Error Resume Next
    Set Formullu_Alan = Selection.Cells.SpecialCells(xlFormulas)
    On Error GoTo 0
 
    If Formullu_Alan Is Nothing Then
        MsgBox "Seçtiğiniz alanda formül içeren hücre bulunamadı!", vbCritical
        Exit Sub
    End If
 
    For Each My_Cell In Formullu_Alan
        My_Cell.Formula = Application.ConvertFormula(My_Cell.Formula, xlA1, xlA1, xlAbsolute)
    Next

    Application.Calculation = xlCalculationAutomatic
 
    MsgBox "İşleminiz tamamlanmıştır."
End Sub
Hocam hayırlı geceler. Kodu butona tanımlayıp kullanabileceğimizi belirtiyorsunuz. Buton oluşturma adımlarını internetten ve bu forum sitesinden buldum. Ancak hepsinde "Araçlar" menüsü veya "Geliştirici" menüsünün içinde "Araçlar" sekmesi
Önerilen kodu bir butona tanımlayıp kullanabilirsiniz.
Önerilen kodu bir butona tanımlayıp kullanabilirsiniz.

Eğer alan seçerek yapmak isterseniz alternatif olarak aşağıdaki kodu deneyebilirsiniz. Yine bir butona tanımlayıp kullanabilirsiniz.

C++:
Option Explicit

Sub Relative_to_Absolute()
    Dim My_Cell As Range, Formullu_Alan As Range
   
    Application.Calculation = xlCalculationManual
   
    On Error Resume Next
    Set Formullu_Alan = Selection.Cells.SpecialCells(xlFormulas)
    On Error GoTo 0
   
    If Formullu_Alan Is Nothing Then
        MsgBox "Seçtiğiniz alanda formül içeren hücre bulunamadı!", vbCritical
        Exit Sub
    End If
   
    For Each My_Cell In Formullu_Alan
        My_Cell.Formula = Application.ConvertFormula(My_Cell.Formula, xlA1, xlA1, xlAbsolute)
    Next

    Application.Calculation = xlCalculationAutomatic
   
    MsgBox "İşleminiz tamamlanmıştır."
End Sub
Hocam hayırlı günler. Bu forumda verilen önerilerden yola çıkarak komut butonu oluşturdum. İçine makro atamadığım için silmem gerek. Ancak silemiyorum. Dosyayı size gönderiyorum. Allah rızası için yardımcı olun. Yapmak istediğim, bulunduğum sayfa içindeki bütün formülleri bir seferde kilitlemek. Yani formül bulunan her hücreye tek tek girip ( =Kesin!$21$ ) şeklinde $ (dolar) işareti koymak yerine, bir seferde hepsine birden $ (dolar) işareti koymak istiyorum. Ama maalesef yüzüme gözüme bulaştırdım sanırım. Bana yardımcı olursanız çok sevineceğim. Bu arada komut butonunu, hem " Köy001" sayfasındaki formül içeren hücrelerdeki formülleri, hem Kesin-Yatay" sayfasındaki formül içeren hücrelerdeki formülleri kiliitleyecek şekilde ve yazdırma alanlarının dışına koymak istiyorum. Yada en soldaki " Kesin " sayfasına, " Kesin-Yatay " sayfasındakileri, " Busene " sayfasına da " Köy001 " sayfasındakileri çalıştıracak şekilde buton koymak istiyorum. Dosya ekte. Hocam lütfen yardım edin.
 

Ekli dosyalar

Üst