• DİKKAT

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

Performans ölçeklerinde sayıya çevirme makrosu

Katılım
12 Ağustos 2007
Mesajlar
301
Excel Vers. ve Dili
2003 türkçe
2016 türkçe
Merhabalar. Öğretmenlerin sene sonunda ihtiyaç duydukları ders içi performans ölçeklerini e okuldan excele aktardıktan sonra otomatik hesaplayan bir çalışma yaptım. Ancak e okuldan aktarılan notlar sayıya çevrilmeden işlem yapılamıyor. Aşağıdaki makro ile notları sayıya çeviriyorum. Ancak öğrencilerin çokluğuna göre 3 ile 6 dakika kadar bekletiyor. Yani yavaş çeviriyor. Bu makroyu hızlandırmak mümkün mü acaba??
Eğer aşağıdaki aralıkta bu hızlandırma yapılamıyorsa bu aralıktaki bütün rakamlar yerine işleme tabi olan 1. dönem için KLM, 2. dönem için XYZ sütunlarını çevirmesi yeterli. Yani sadece bu sütunların 12-500 aralığında (Kalabalık okullar için 500 artırılabillir) seçilip sayıya çevrilmesi için makro nasıl düzenlenmelidir? Teşekkürler.

Sub Düğme2_Tıklat()
For Each Alan In Range("E12:AD500")
Alan.NumberFormat = "General"
If Alan.Value <> "" Then Alan.Value = CDbl(Alan)
Next
End Sub
 
Son düzenleme:
Sayıya çevirmenin manuel yöntemini verirseniz iyi olur. En güzeli örnek bir dosya paylaşmanızdır.
 
Aşağıdaki örnek dosyada BRANŞ sayfasında C12 hücresinden itibaren e okuldan aktarılan not fişleri kopyalanıp yapıştırılıyor. E12 ile AE(500) arasında rakamlar var. Bu rakamlar rakam görünümlü yazı halinde. Bunları işlem yapabilmek için sayıya çevirmek gerekiyor. Örnek dosyada 3 sınıf var ama gerçekte 14 sınıfın dersine giriyorum ve sayıya çevir makrosunun ne kadar yavaş olduğunu görüyorsunuz. 1 dönem ve 2. dönem sayfaları KLM VE XYZ sütunlarını kullandığına göre ya makro hızlandırılmalı veya sadece bu sütunları sayıya çevirmesi sağlanmalıdır. Yine 500 satırı yaptırmak yerine bu sütunlardaki son rakama kadar seçilmesi sağlanabilirse belki daha iyi olabilir. Teşekkürler.

http://s4.dosya.tc/server/ejh2e7/PERFORMANS_2016_BRANS.xls.html
 
Son düzenleme:
Merhaba
Kodlardaki yavaşlık formüllerden dolayıdır.
Aşağıdaki gibi deneyiniz;
Mavi bölümü silebilirsiniz.
Kod:
[SIZE="2"]Sub Düğme2_Tıklat()
Application.Calculation = xlCalculationManual

[COLOR="Blue"]Range("E12:AD50000").SpecialCells(xlCellTypeConstants, 1).Select[/COLOR]

For Each Alan In Range("E12:AD50000").SpecialCells(xlCellTypeConstants, 1)
Alan.NumberFormat = "General"
If Alan.Value <> "" Then Alan.Value = CDbl(Alan)
Next
Application.Calculation = xlCalculationAutomatic
End Sub[/SIZE]
 
Sayın plint İlginize teşekkür ederim ama yazdığınız kod hiçbir işlem yapmadı. Ben bir şeyi yanlış mı yaptım acaba?
 
Sayın PLİNT sizin kodlarınızdan yola çıkarak aşağıdaki kodu hazırladım galiba başardım. Gerçek rakamlarla deneyemedim ama bu haliyle bile çok hızlandı.

Sub Düğme2_Tıklat()
Application.Calculation = XlCalculation.xlCalculationManual
For Each Alan In Range("E12:AD2000")
Alan.NumberFormat = "General"
If Alan.Value <> "" Then Alan.Value = CDbl(Alan)
Next
Application.Calculation = XlCalculation.xlCalculationAutomatic
End Sub
 
Tekrar Merhaba Sayın Plint gerçekten yazdığınız kod mükemmel çalıştı. Önceki denememde neyi yanlış yaptım bilemiyorum. Teşekkürler
 
Geri
Üst