• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

ChatGPT'nin Yazdığı VBA Makrolarındaki 5 Ölümcül Hata ve Çökme Çözümleri

ExcelCozum

Moderatör
Moderatör
Katılım
27 Eki 2021
Mesajlar
120
Çözümler
1
Aldığı beğeni
265
Katkı
%0.04
Konu Sahibi
Değerli Excelcozum.com üyeleri ve kurumsal geliştiricilerimiz,

Makale serimizin ilk bölümünde yapay zekanın formül kurgularındaki mantık hatalarını incelemiştik. Bu bölümde ise işi bir tık daha ileriye götürüyor ve şirketlerin operasyonel süreçlerini doğrudan durma noktasına getiren Yapay Zekâ kaynaklı VBA Makro hatalarını masaya yatırıyoruz.
ChatGPT, Claude veya Copilot gibi araçlara kurumsal verileriniz için makro yazdırdığınızda, arka planda dönen mimariyi tam bilmedikleri için en sık yapılan 5 ölümcül makro krizini ve bunların kesin çözümlerini derledik.



1. Nesne Referansı Körlüğü (ActiveSheet ve Yanlış Veri Silme Tuzağı)
Yapay zekâ, kod bloklarında hangi sayfada işlem yapacağını açıkça belirtmek yerine genellikle sadece Cells(1, 1) veya Range("A1") yazar. Bu durum kodun o an ekranda açık olan aktif sayfada çalışmasına neden olur. Eğer makroyu yanlış sayfada tetiklerseniz, kurumsal bir raporun verilerini tamamen ezebilir veya silebilirsiniz.
  • Doğrulama Yöntemi: Kodun içinde sayfa nesnelerini her zaman açıkça tanımlayın: ThisWorkbook.Sheets("Rapor").Cells(1, 1)

2. Türkçe Excel'de İngilizce Formül Bastırma Krizi (Formula vs FormulaLocal)
AI, hücrelerin içerisine makro ile formül yazdırmak istediğinizde kodu Range("A1").Formula = "=IF(B1>0, 1, 0)" şeklinde kurgular. Bu kod Türkçe sürüm kullanan kurumsal bir bilgisayarda çalıştırıldığı an doğrudan "Run-time error '1004': Application-defined or object-defined error" hatası verir ve makro çöker.
  • Doğrulama Yöntemi: VBA ile Türkçe Excel sürümüne formül gönderecekseniz her zaman parametreyi FormulaLocal olarak tanımlayın ve Türkçe ayraçları kullanın: Range("A1").FormulaLocal = "=EĞER(B1>0; 1; 0)"

3. Sonsuz Döngüye Girme ve Excel'in Yanıt Vermeyi Kesmesi
Yapay zekâ, verileri taramak için Do While veya Loop döngüleri kurarken satır sayacını (i = i + 1) döngünün dışına yazabilir veya çıkış şartını yanlış kurgulayabilir. Bu durumda işlemci %100 yük altına girer, Excel donar ve kaydedilmemiş tüm verileriniz kaybolur.
  • Doğrulama Yöntemi: Döngülerin içerisine mutlaka Windows'a nefes aldıran DoEvents komutunu yerleştirin ve satır sayaçlarının döngü sınırının içinde arttığından emin olun.

4. Select ve Activate Hamallığı (Büyük Verilerde Kaplumbağa Hızı)
AI, kullanıcı adımlarını taklit ederek kod yazdığı için sürekli Range("A1").Select ve Selection.Copy gibi komutlar üretir. 100.000 satırlık bir kurumsal datada ekran sürekli hareket ettiği için makronun çalışması saatler sürebilir.
  • Doğrulama Yöntemi: Seçim yapmadan doğrudan değer ataması (Range("B1").Value = Range("A1").Value) yapın ve kodun en başına ekran hareketlerini donduran Application.ScreenUpdating = False satırını ekleyin.

5. Integer Veri Tipi ve "Overflow" (Taşma) Patlaması
Yapay zekâ satır sayılarını hafızada tutmak için değişkenleri Dim satır As Integer olarak tanımlar. Ancak VBA mimarisinde Integer tipi en fazla 32.767 satır taşıyabilir. Kurumsal dosyanız 32.768. satıra ulaştığı an makro "Run-time error '6': Overflow" hatası vererek yarıda kesilir.
  • Doğrulama Yöntemi: Satır veya büyük veri sayacı içeren tüm döngü değişkenlerini her zaman Long veri tipi olarak tanımlayın.


💡 Canlı Uygulama ve Test Dosyası:
Yönetim ekibimiz tarafından hazırlanan, yapay zekanın bu 5 kritik VBA hatasını ve yanlarında çökme korumalı optimize edilmiş doğru kod mimarilerini barındıran chatgpt_makro_hatalari_ve_vba_kilavuzu.xlsm dosyası konunun ekindedir.


Siz yapay zekaya makro yazdırırken en çok hangi run-time hatasını alıyorsunuz?
Kodlarınızı ve hata ekranlarını bu başlık altında paylaşın, yönetim ve forum üyeleri olarak birlikte düzeltelim!


 

Ekli dosyalar

Geri
Üst