Kod:
Sub Sıfırla()
ActiveSheet.Range("R25:S54").Select
For i = 1 To WorksheetFunction.CountA(Range("R25:S54"))
SendKeys "{F2}", True
SendKeys "{ENTER}", True
Next
End Sub
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub Sıfırla()
ActiveSheet.Range("R25:S54").Select
For i = 1 To WorksheetFunction.CountA(Range("R25:S54"))
SendKeys "{F2}", True
SendKeys "{ENTER}", True
Next
End Sub
Sub SIFIRLA_BRN()
For Each shf In ThisWorkbook.Sheets
Set s = Sheets(shf.Name)
If s.Name <> "BAZ" And s.Name <> "D" Then
If s.[A1].HasFormula Then s.[A1].Formula = s.[A1].Formula
For sat = 25 To 54
For sut = 18 To 19
If s.Cells(sat, sut).HasFormula Then s.Cells(sat, sut).Formula = s.Cells(sat, sut).Formula
Next
Next
End If
Next
Set s = Nothing
MsgBox "İşlem tamamlandı.", vbInformation, "..:: Ömer BARAN ::.."
End Sub
Hemen Deniyorum Hocam. Mesajınızı şimdi gördüm.Tekrar merhaba.
Aşağıdaki kod, ismi BAZ ve D olmayan sayfalarda A1 ve R25:S54 aralığındaki formüllerin yenilenmesini sağlar.
Bir deneyin bakalım.
Rich (BB code):Sub SIFIRLA_BRN() For Each shf In ThisWorkbook.Sheets Set s = Sheets(shf.Name) If s.Name <> "BAZ" And s.Name <> "D" Then s.[A1].Formula = s.[A1].Formula For sat = 25 To 34 For sut = 18 To 19 s.Cells(sat, sut).Formula = s.Cells(sat, sut).Formula Next Next End If Next Set s = Nothing MsgBox "İşlem tamamlandı.", vbInformation, "..:: Ömer BARAN ::.." End Sub
Hocam gönderdiğiniz kodu çalıştıramadım maalesef. "Run Time Error-9" hatası verdi. "For sat = 25 To 34" olarak yer alıyor ama "R25:S54" aralığı olacağından koddaki "34"ü "54" olarak revize etmem uygun mudur Hocam?Tekrar merhaba.
Aşağıdaki kod, ismi BAZ ve D olmayan sayfalarda A1 ve R25:S54 aralığındaki formüllerin yenilenmesini sağlar.
Bir deneyin bakalım.
Rich (BB code):Sub SIFIRLA_BRN() For Each shf In ThisWorkbook.Sheets Set s = Sheets(shf.Name) If s.Name <> "BAZ" And s.Name <> "D" Then s.[A1].Formula = s.[A1].Formula For sat = 25 To 34 For sut = 18 To 19 s.Cells(sat, sut).Formula = s.Cells(sat, sut).Formula Next Next End If Next Set s = Nothing MsgBox "İşlem tamamlandı.", vbInformation, "..:: Ömer BARAN ::.." End Sub
Hocam gönderdiğiniz belgeyi almak için Altın Üyelik sayfasında e-mail ve şifremi giriyorum ancak doğru olmasına rağmen giriş yapamıyorum. Neden? Kullanıcı adı veya şifre hatalı diyor. Halbuki doğru. Ve zaten email soruyor kullancı adı da değil. Anlamadım. Ne yapmam gerekir?Kod'un uygulandığı belge ekte.
34'ü 54 olarak değiştirerek uygulayın, gönderdiğim belgede hala 34 olarak duruyor.
Hocam gönderdiğiniz belgeyi çalıştırdığımda "Enable İteratice Calculation" bölümünün pasif olduğunu gördüm. Normal de benim çalışma sayfamda işlem gören hücreler kendilerine de başvurduğundan Excel Options Formulas bölümündeki "Enable İterative Calculation" seçili olması gerekiyor. Size gönderdiğim dosyayı da bu şekilde gönderdiğimi hatılrıyorum. Diğer türlü için ise kod sadece A1 hücresi için çalıştı. O hücre de F2>>ENTER'ı taklit eder şekilde normal de sonuç boş gözükürdü. Sizin kodunuzda sonucu "0" olarak gösterdi. Ayrıca "R25:S54" aralığındaki hücrelerde bir değişiklik de olmadı maalesef. Yani "R25:S54" hücre aralığındaki sonuçlar sabit kaldı. Neden böyle oluyor Hocam.
Excel Options Formulas bölümündeki "Enable İterative Calculation" seçili iken de "Run Time Error-9" hatası veriyor yine.Hocam gönderdiğiniz belgeyi çalıştırdığımda "Enable İteratice Calculation" bölümünün pasif olduğunu gördüm. Normal de benim çalışma sayfamda işlem gören hücreler kendilerine de başvurduğundan Excel Options Formulas bölümündeki "Enable İterative Calculation" seçili olması gerekiyor. Size gönderdiğim dosyayı da bu şekilde gönderdiğimi hatılrıyorum. Diğer türlü için ise kod sadece A1 hücresi için çalıştı. O hücre de F2>>ENTER'ı taklit eder şekilde normal de sonuç boş gözükürdü. Sizin kodunuzda sonucu "0" olarak gösterdi. Ayrıca "R25:S54" aralığındaki hücrelerde bir değişiklik de olmadı maalesef. Yani "R25:S54" hücre aralığındaki sonuçlar sabit kaldı. Neden böyle oluyor Hocam.
Hocam minettarım. Çok çok teşekür ederim. Sanırım gönderdiğiniz makroyu kaydettiğim yer ile ilgili sorun oluyordu. Ben normalde Makroları "Personel Macro Workbook" altına kaydediyorum. Sizin son gönderdiğiniz kodu da öyle yapmıştım. Ancak daha sonra ordan silerek normal çalışma kitabında kaydettim gönderdiğiniz makroyu. Ve öyle yapınca çalıştı. Makroyu "Personel Macro Workbook" altına kaydedince neden "Run Time Error-9 hatası" veriyor peki hocam? Bunun için yapabileceğim birşey var mı?Yaptığınız işlemi, amacı tam olarak gerçekten anlamış değilim.
Kod A1 için ne yapıyorsa, diğer R:S sütunu hücreleri için de aynısını yapıyor durumda.
Şu an ben de yinelemeli hesaplama onay kutusunu işaretleyerek kodu çalıştırdığımda A1 hücresi BOŞ sonuç veriyor durumda.
Bu onay kutusu işaretli değilse sonuç 0 oluyor doğrudur. Herhangi bir hata almıyorum.
VBA ekranını açıp F8 tuşuyla kodu adım adım çalıştırın, bakalım hangi satırda hangi durumda hata alıyorsunuz, merak ettim.
R:S sütunlarının biçimini saat, dakika ve saniye görecek şekilde (Türkçe için böyle: gg.aa.yyyy ss:dd:nn) ayarlayarak deneyin.
Evet hocam. Bu kodu Personal Macro Workbook altına açtığım modüle ekleyerekte çalıştırabildim nihayetinde. Sizin gönderdiğiniz kodda sadece "For Each shf In ThisWorkbook.Sheets" >satırını> "For Each shf In ActiveWorkbook.Worksheets" şeklinde değiştirdim. Artık Personal Macro Workbook altındaki modülde başka çalışma kitaplarında da bu kodu çalıştırabiliyorum. İşin aslı asıl çalışma kitabım 30 sayfadan oluşuyor. Bu kodu orda denediğimde dosya yükünden mi kaynaklanıyor bilmiyorum ama makroyu tetiklediğim an mouse yarım saat boyunca döndü ve işlemi bitirmedi. Kod içersindeki hesaplamadan hariç tutmak istediğim iki sayfayı da belirttim diğer Çalışma kitabında. Ancak diğer Çalışma Kitabında 30 sayfa var. Makroyu tetiklediğimden beri 30 dakika boyunca mouse'ın dönüp durması sonucu işlemi neticelendirmedi? 30 Sayfalık bir çalışma kitabında bu makro yetersiz mi kalır hocam neden böyle olabilir?Estağfurullah. İhtiyaç görüldüyse mesele yok.
Belirttiğim gibi, VBA ekranında iken kodu F8 ile adım adım çalıştırarak hata noktasını tespit edebilirsiniz.
Sanıyorum SAYFA DÖNGÜSÜnden kaynaklanıyor.
A sayfasını aktif hale getirip, sayfa döngüsünü kaldırıp sadece hücre döngüsünü çalıştırırsanız hata almayacağınızı tahmin ediyorum.
Eğer makronuzdaki hücre ve işlemler activesheet.... şeklinde olsaydı sorun yaşamazdınız sanıyorum.
Revize ettiğiniz şekilde kodun yeni halini denedim hocam. Ve aslında kodda sorun yok. Birkaç saattir türlü denemeler yaptım. Sorun şu ki; bahsettiğim 30 sayfalık çalışma kitabından 25 sayfasını çıkarıp tekrar kaydettim. Bu kez işlemi 10 dakika da sonlandırdı. Demek ki anladığım kadarı ile (siz daha iyi bilirsiniz); sorun sanırım hariç tutmak istediğimiz "BAZ" ve "D" isimli sayfalar haricindeki sayfaların satır ve sütun kesişimlerini sanırım aynı anda yapmaya çalıştığından ve sayfa sayıları 30 olunca örneğin 30xkat daha yavaşlıyor kod. Excel'in altında "Calculate" bölümüne baktığımda örneğin tek sayfa üzerinde işlem yapınca Calculate saniyede "20"kez yanıp sönerken eğer makro çalışma kitabında "30"sayfa üzerinde işlem yapıyorsa "Calculate" saniyede sadece "1"kez yanıp sürüyor. Bu da sanırım bize sayfa sayısının fazla olması ve hariç tutttuğumuz sayfalar dışındaki işlem yapılacak satır ve sütunları aynı anda işleme aldığından sürenin olağandışı uzamasına neden oluyor. Sanırım hariç tuttuğumuz sayfalar dışındaki sayfalar için her sayfayı bitirdiğinde diğer sayfanın işlemini yapması yani sayfaları sırasıyla bir sayfayı bitirip diğer sayfaya geçmesi sorunumuzu çözücek gibi gözüküyor. Bunu başarabilirsek sanırım sorun çözülmüş olucak hocam benim adıma. Teşekkürler tekrardan.Dosyayı ve formülleri görmeden bir şey söylemem yanlış olur.
En azından 4 numaralı cevapta yaptığım ekleme (kırmızı derklendirdim) doğrultusunda, kod'un yeni halini bir deneyin isterseniz.
.
Sub SIFIRLA_BRN()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each shf In ThisWorkbook.Sheets
If shf.Name <> "BAZ" And shf.Name <> "D" Then _
Sheets(shf.Name).[A1:A30, R25:S54].Calculate
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
Son gönderdiğiniz kodu çalıştırdığımda "Run-Time Error 404" hatası verdi maalesef.Tekrar merhaba.
Bir de aşağıdaki kodu dener misiniz?
Rich (BB code):Sub SIFIRLA_BRN() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual For Each shf In ThisWorkbook.Sheets If Sheets(shf.Name).Name <> "BAZ" And s.Name <> "D" Then _ Sheets(shf.Name).[A1:A30, R25:S54].Calculate Next Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub