ERRORS

    Artık VBA Editor’de hücre seçebiliyor, seçtiğimiz hücrenin özelliklerini ve değerini değiştirebiliyoruz. Ancak sizin de farkında olduğunuz gibi işin daha en başındayız. Bu sebepten dolayı da hata yapma olasılığımızın en yüksek olduğu dönemdeyiz. Sonradan çok basit olduğunu farkedeceğimiz hatalarla bu dönemde çok ciddilermişcesine uğraşacağız. Bu sebepten dolayı burada size çok basit birkaç hatadan bahsedeceğim. Bu sayede, başlangıç evrenizde eğer bir hatayla karşılaşırsanız, çözüme nerelerde bulabileceğinizi tahmin edebileceksiniz. Errors errors errors errors errors errors

    Her yaptığınız hatayla yeni bir şey öğrendiğinizi unutmayın. Eğer hata yapmıyorsanız, kendinizi çok fazla zorlamıyorsunuz demektir. errors

Errors 1 - SYNTAX HATASI

    Syntax, sözlük anlamı olarak söz dizilimi veya söz dizilimi kurallarıdır. Burdan da çıkarım yapabileceğimiz gibi syntax hatası, bizim kod yazarken uymamız gereken kurallara uymadığımız zaman karşımıza çıkar. Buna örnek vermek gerekirse, daha önceden string veri tipinden ve string’lerin çift tırnak arasında olması gerektiğinden bahsetmiştik. İşte bu noktada eğer, biz bu tırnaklardan birini koymayı unutursak burada bir yazım hatası yani syntax hatası yapmış oluruz. errors errors errors errors errors errors

    Syntax hatasında VBA Editor, biz hatalı kod satırından çıkar çıkmaz, kodu çalıştırmadan bir hata penceresi açar ve bize hatalı olduğumuzu gösterir. Hata penceresi ile birlikte bütün bir hatalı kod satırını da *kırmızıya boyar. 

    Aşağıdaki sekmelerde syntax hatası yaptığınızda karşılaşacağınız uyarı penceresi ve kırmızıya boyanmış kod yazısını görüyorsunuz. Burada dikkat etmenizi istediğim 2 husus var. Birincisi ünlem işaretinin yanında Compile Error yazması, ikincisi ise bir ayraç ya da ‘)’ ters parantez eksik yazması. Ve ikisi de yanlış ne yazık ki. Ancak VBA Editor’un bize Syntax Error anlatma şekli bu. Ve bazen bu pencere bizim kafamızın karışmasına sebep oluyor. Syntax error olup olmadığını, kodu çalıştırmadan önce VBA Editor’un bu hatayı otomatik olarak vermesinden rahatça anlayabiliriz, ancak eğer dikkatli olmazsak, dakikalarca eksik bir parantez veya ayracı bir yerlere yerleştirmeye çalışırız. Ki hatamız başka bir şeyden kaynaklanmaktadır. Bu sebeple ben size bu uyarı penceresinin otomatik olarak açılmasını kapatmanızı tavsiye ediyorum. Çünkü eninde sonunda bu pencere yüzünden zaman kaybedeceksiniz. Bu pencereyi kapatmak için; 

errors errors errors errors errors errors

Tools> Options > Editor > Code Settings çerçevesinde yer alan ‘Auto Syntax Check’ seçeneğinin tikini kaldırıyoruz. Bundan sonra yine yazım hatası yaptığınızda, hatalı kodu içeren kod satır fontu kırmızıya dönüşecektir ama artık yanlış mesaj veren bir hata penceresi açılmayacaktır.

ErroERRORSrs 2 - COMPILE HATASI

    Compile hatası, syntax hatasından farklı olarak, kodu çalıştırdıktan sonra farkına varabileceğiniz bir hatadır. Genellikle yanlış veya eksik yazılmış bir kelime sebep verir. Range yerine Rang gibi yada farklı harfe basma gibi küçük yanlışlıklar bu hatayı tetikler. 

    Bu hata ortaya çıktığı zaman yine bir hata penceresi açılır. Bu hata penceresi ile birlikte ise hataya sebep olan kelime v.b. üzeri mavi renkte taranır. Biz hata penceresini kapattığımızda ise subroutine isminin sarı renkle tarandığını ve VBA Editor Penceresinin başlığında yani workbook isminin yanında [break] ifadesinin ortaya çıktığını görürüz. Bu ifade, kodun işlenmeye devam etmeden önce ara verildiği, hatanın düzeltilmesinin beklendiği anlamındadır. Kısaca VBA Editor bekleme modundadır. Bu noktada, hata düzelttikten sonra en iyisi yine görev çubuğunda eski müzik çalarların #’STOP’ düğmesi şeklinde olan reset tuşuna basmalı ve sonradan kodu tekrardan çalıştırmaktır. Bu ‘STOP’ tuşuna benzeyen kare şeklindeki tuş aynı zamanda ‘RUN’ sekmesi altındadır.

    Kodu çalıştırmadan önce de bu hataların farkına varmak istersek bu sefer ‘Debug’ sekmesinden ‘Compile VBA Project’ tıklarız ve yine herhangi bir hata olup olmadığını programı çalıştırmadan görebiliriz.

    Bazen bir fonksiyon veya sabite(constant) adını yanlış yazsak bile program farklı bir görev olarak yazımızı algılayıp, yanlış bir şekilde çalışabilir. İşte bunun önüne geçmek için bir yöntem var. Bu yöntem genellikle değişkenlerin tanımlanması ile alaklı olsa da burada da işimize yarar ve programın yanlış bir şekilde excel worksheet te çalışmasını engeller. Çünkü macro kodlarınızın, dosyalarınız üzerinde yaptığı işlemler geri alınamaz işlemlerdir.

    Şimdi subroutine de üzerine gidip Option Explicit yazıyoruz. Artık, yanlış kelimelerle işlem yapılmayacaktır. Ve eğer bunu bütün yazdığınız kodlarda otomatikleştirmek isterseniz de yine

Tools > Options > Editor de Code Settings deki ‘Require Variable Declaration’ yanındaki kutucuğa tik atıyoruz.

#Eğer görev çubuğunda bu tuş yoksa, görev çubuğunun herhangi bir yerine sağ tıklayıp ‘standart’ ismindeki toolbox’ı görev çubuğuna sabitleyebilirsiniz. Bu sayede çokca kullanacağınız tuşlar devamlı görev çubuğunda, önünüzde olacaktır. 

ErrorsERRORS 3 - RUNTIME HATASI

    Run-Time Hatası, program çalıştıktan sonra hatta ortaya çıkan bir hatadır. Debug sekmesindeki Compile VBA Project ile taradığımızda dahi bu hata kendini göstermez. Burada program çalışmaya başlar, hatta excel worksheet üzerinde değişiklikler de yapar. Şimdi alt kısımdaki RunTime Hatası Görselini inceleyelim ve sonra tekrar buradan devam edeceğiz.

    Görselde de gördüğünüz Range(“zzzzz5”) hücresi excel worksheet de yer almamaktadır. Onun için excel buhücreyi bulamadığında bu hatayı verir. Sadece hücre olarak düşünmeyin, bir fonksiyonun eksikliği, dosya yolunun değişmiş olması vb de aynı hataya sebep olur. Bu hata ortaya çıktıktan sonra eğer hatanın neden kaynaklandığını tahmin edemiyorsak, o zaman en mantıklı hareket, uyarı penceresinin alt kısmında yer alan ‘debug’ tuşuna basmaktır. Bu tuşa basınca, pencere ortadan kaybolacak ve artık hataya yol açan kod satırı sarı renkle taranmış olacaktır. 

errors errors errors errors errors errors

    Compile error ile aralarındaki bir farktan bahsetmek istiyorum. Compile error da yorumlama sırasında bir hata çıkmış oluyordu, Run-Time Error da ise program çalıştıktan ve işleme başladıktan sonra hatayla karşılaşıyoruz. Yani Run Time’da kod worksheet üzerinde bazı değişiklikler yapmış olabilir. Bu nedenden dolayı hata ortaya çıkıp da düzelttikten sonra, Compile Error’daki gibi reset tuşuna basmadan, tekrar run tuşuna basarak, programın çalışmasına devam etmesi sağlanmalıdır. Resetleyerek kodu tekrar çalıştırmayı da deneyebilirsiniz ancak içerisinde olduğunuz subroutine görevi neticesinde, programınız yarıda kaldığı bir görevi bırakıp, yeni göreve başlayabilir. Bunu en çok döngülerde görürüz. Her satırı taraması ve hesap yapması gerken bir kod, yarıda çalışmayı durdurup da resetlenirse, hesap yağtığı satırlarda bu sefer tekrar hesap yaparak farklı sonuçlar elde edebilir.

    Hata kodunun olduğu satırı eğer farklı bir renkte görmek isterseniz, hemen Tools> Options>Editor Format’a Gidip oradan bu rengi istediğiniz renk ile değiştirebilirsiniz. Ayrıca orada çok farklı text’lerin de her türlü özelliğini değiştirebileceğinizi göreceksiniz.

Errors 1

Bizim örneğimizde tırnak işareti eksik olmasına rağmen hata penceresi, bizi farklı yönlendiriyor.

Errors 2

Errors 3

Break Mode- Programda Ara Verme, Mola Verme

   Programda hatanızın olup olmadığını veya yazdığınız kod satırlarının çalışıp çalışmadığını merak ederseniz, size yardımcı olacak bir tuş F8. Çünkü F8’e kodunuzu satır satır çalıştırmanızı sağlar. Bu sayede kodun excel worksheet üzerinde istediğniz etkiyi yapıp yapmadığını da çok net bir şekilde görürsünüz. 

    

   Uzunca yazılmış subroutine’lerde bu eğer sadece sorunu bulmak istiyorsanız F8 seçeneği biraz yavaş kalabilir. Hatanın bulunduğu kodu biliyor olup tam orada programın durmasını da istiyor olabilirsiniz. Bu gibi durumlarda istediğimiz satırın üzerine tıklayıp, F9 a basarak istediğimiz kod satırına dur işareti koyabiliriz. Böylece hatayı düzeltir ve kodun kaldığı yerden çalışmasını sağlayabiliriz. Veya o noktaya kadar yazdığınız kodun istediğiniz etkiyi sağlayıp sağlamadığını, etkinliğini de denetleyebilirisiniz. 

    Aynı zamanda aynı etkiye, programın durmasını işstediğiniz kodun yan tarafında bulunan gri sütuna tıklayarak da ulaşabilirsiniz. Yine bu durağı kaldırmak isterseniz, aynı şekilde F9 a basmak veya tıkladığınız yere tekrar tıklamak yeterli olacaktır.

    Yanda durak işareti konmuş olan bir subroutine görüyorsunuz.

    Duraksama noktası;

Debug sekmesi altında yer alan Toggle Breakpoint seçeneğiyle de konulabilir. Diğer yöntemlerdeki gibi ilk önce kodun durmasını istediğimiz satıra tıkladıktan sonra bu işlemi gerçekleştiriyoruz.

Dünya Çapında Araştırmacılara Ait Çalışmaları Okumak İsterseniz https://www.researchgate.net/profile/Ender_Dagdelen adresini Ziyaret Edebilirsiniz. Ana Sayfaya Dönmek İsterseniz De Aşağıdaki Tuşu Tıklayınız.

Herkese İyi Çalışmalar…

Soru ve Önerileriniz İçin;

[email protected]