• DİKKAT

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

formülü değere çevirme makrosu

Katılım
20 Nisan 2008
Mesajlar
126
Excel Vers. ve Dili
2010
Sub metnecevır()
Col = 1
DerLig = Cells(65536, Col).End(xlUp).Row
For i = 1 To DerLig

Cells(i, Col).Formula = "'" & Cells(i, Col)
Cells(i, Col).Formula = "" & Cells(i, Col)
Next i
End Sub

bu kodu bir düğme yardımı ile sayfanın modülüne yazınca sorun yok ancak bunu sayfa olayına yazıp denediğimde sonsuz bir döngüye giriyor bunu önlemek mümkünmü kod şöyle

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Col = 1
'DerLig = Cells(65536, Col).End(xlUp).Row
'For i = 1 To DerLig

'Cells(i, Col).Formula = "'" & Cells(i, Col)
'Cells(i, Col).Formula = "" & Cells(i, Col)
'Next i
'End Sub

yada buradaki kodu istediğimiz bir sutunun atıyorum f12 ile F24 arası gibi sınırlamamız mümkünmü
düğmeli örnek ekte
 

Ekli dosyalar

merhaba

bunu deneyiniz.
Kod:
Application.EnableEvents = False
 
çok teşekkür ederim oldu sanırım birde bunu istediğimiz hücreye nasıl uygularız yani atıyorum g sutunu 24 satırdan g sutunu 40. satıra kadar mesela bu mümkünmüdür
 
hocam verdiğiniz kodu yazdım ancak şöyle bir sorun fark ettim bu kodu yazdıktan sonra sonuz döngü durdu ama kodun çalışmasıda durduğu için yapılan anlık değişiklikler yine metne dönmüyor saygılarımla
 
hocam verdiğiniz kodu yazdım ancak şöyle bir sorun fark ettim bu kodu yazdıktan sonra sonuz döngü durdu ama kodun çalışmasıda durduğu için yapılan anlık değişiklikler yine metne dönmüyor saygılarımla

Merhaba
Kod:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
[COLOR="Red"]Application.EnableEvents = False[/COLOR]
Col = 1
DerLig = Cells(65536, Col).End(xlUp).Row
For i = 1 To DerLig

Cells(i, Col).Formula = "'" & Cells(i, Col)
Cells(i, Col).Formula = "" & Cells(i, Col)
Next i
[COLOR="red"]Application.EnableEvents = True[/COLOR]
End Sub

Mevcut koda bu satırları ilave edeceksiniz.
Biryerlerde kod hata vermişse Application.EnableEvents = True
satırı atlandığından bundan sonra kod çalışmayabilir.
Dosyayı kapatıp tekrar açmanız gerekir.

Nasıl bir kod istediğinizi pek anlayamadım.
Worksheet_Change yordamına yazdığınız kod ile formülü değere çeviriyorsunuz, Bu biraz paradoxsal uygulama değil mi?
=2*10 şeklinde veri girişi varsa kabul edilebilir ama başka türlü formül varsa anlamsızlaşıyor.

Neden for-next döngüsü kullandığınızı da anlayamadım.
 
hocam şöyle ki tabloda yaptığım değişiklikleri formülü durdurup kayıt yapma imkanım yok mantık yürütüm yapılan işlerin sonunda ertesi gün kaynak dosyadaki değişikliğin bir daha o sayfaya yansımaması için ya formüllerin işleyişi duracak yada yapılan işlemler sonunda formül sonucu olan değer metin olarak kaydedilecek bunu sağlamaya çalışıyorum
ayrıca küçük bir yardım daha rica etsem sizden ayıp etmem umarım ..
soru şu yukarıdaki kod da nasıl bir değişiklik yapmalıyım ki A1 ile D20 hücreleri arasında kalan hücreleri değiştireyim umarım acıklayıcı olmuştur saygılarımla
 
Merhaba

Şöyle bir kod olabilir ama bence kullanışlı değil.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo 10
Application.EnableEvents = False
    Range("A1:D20").Copy
    Range("A1:D20").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
10
Application.CutCopyMode = False
Application.EnableEvents = True
End Sub

Dosyayı kaydederken veya kapatırken formülleri sileyim mi diye sorsa ve sil dediğinizde silse daha doğru bir uygulama olur.
 
Sn. zodiak, aşağıdaki kod seçili hücredeki formülleri değere dönüştürür. Belki bu işinizi görebilir.

Sub formullerideğeryap()
For Each fCell In Selection
fCell.Value = fCell.Value
Next fCell
End Sub
 
ilginize çok teşekkür ederim tahsin hocam ve uzman hocam şu anda kodları uygulama imkanım yok ama en kısa zamanda deneyip neticeyi bildiririm saygılarımla
 
uzman hocam 7. msesajda verdiğiniz kodu uyguladım çalışıyor teşekkür ederim ayrıca Dosyayı kaydederken veya kapatırken formülleri sileyim mi diye sorsa ve sil dediğinizde silse daha doğru bir uygulama olur. önerinize katılıyorum da ben bir türlü beceremedim :) onun yerine kodun çalışma zamanını belirleyecek bin satır ekledim ama sizin öneriniz daha akla yatkın
 
Geri
Üst