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:

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Sayıya çevirmenin manuel yöntemini verirseniz iyi olur. En güzeli örnek bir dosya paylaşmanızdır.
 
Katılım
12 Ağustos 2007
Mesajlar
301
Excel Vers. ve Dili
2003 türkçe
2016 türkçe
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:
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
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]
 
Katılım
12 Ağustos 2007
Mesajlar
301
Excel Vers. ve Dili
2003 türkçe
2016 türkçe
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?
 
Katılım
12 Ağustos 2007
Mesajlar
301
Excel Vers. ve Dili
2003 türkçe
2016 türkçe
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
 
Katılım
12 Ağustos 2007
Mesajlar
301
Excel Vers. ve Dili
2003 türkçe
2016 türkçe
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
 
Üst