Hazır Fatura Kaydetme Fatura Numarası Otomatikleştirme

turanmamma

Kullanıcı
Katkı: %0
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
İyi günler. Ben hazır fatura şablonunu düzenleyerek. FATURAYI PDF, XLS dosyaları gibi farklı dosya şeklinde kayd etmek için makro kullanıyorum. XLS kaydet butonuna basdığımda her defasında dosya fatura numarasını otomatik +1 artırıyor, ve her kayıtda fatura numarası değişiyor. Bunu yapmayı başardım. Ancak her kayd edişimde Örnek Fatura dosyasındaki fatura numarası sabit kalıyor. Benim yapmak istediğim Fatura yazılıp kayıt butonuna basıldığında yazılan fatura nasıl farklı dosya şeklinde fatura nunmarası değişip 1 yukarı rakam olarak kayıt oıluyorsa Ornek fatura dosyasındada fatura numarası değişsin. Çünki her yeni fatura oluşturduğumda Örnek Fatura üzerinden oluşturuyorum. ve buda fatura numaralarını karışmasına sebep oluyor. Örnek dosyayı ekledim. Yardımcı olursanız çok sevinirim.
 

Ekli dosyalar

@turanmamma

Mevcut kodlarınızda 1 artırma ile ilgili kod satırınız şöyle:
Range("G3").Value = Range("G3").Value + 1
bu tür kodlarda, ilgili hücrenin hangi sayfadaki G1 hücresi olduğunu kodda belirtmezseniz,
aktif sayfa hangisi ise o sayfanın G1 hücresinde işlem yapılır.

Bu nedenle; belirttiğim kod satırının başına ilgili safa adını şöyle belirterek bir deneyin derim.

ThisWorkbook.Sheets("xxxxxx").Range("G3").Value = ThisWorkbook.Sheets("xxxxxx").Range("G3").Value + 1

.
 
Söylediğinizi yaptım, Ancak yine kayd edilen dosyada fatura numarası artıyor sayı olarak, ancak Ornek fatura eski numarada kalıyor. Kayd edilen dosya ile sıkıntı yok istediğim gibi say artırılıp kayd ediliyor. Ancak benim istediğim Örnek faturada da say artsın
 
Belgenizdeki işleyişi/kodların tümünü gözden geçirmedim.
O halde; Örnek Fatura sayfası G1 hücresi için de benzer bir kod satırı ekleyin.

.
 
Merhaba, dosyanızı inceledim ve sorunun nedenini makro kodunuzda tespit ettim. "Module3" içindeki xlsKaydet makrosu, yeni faturayı kaydederken ActiveWorkbook.SaveAs komutunu kullanıyor. SaveAs komutu açık olan dosyanın adını kalıcı olarak yeni isimle değiştirir; G3 hücresindeki fatura numarası bellekte bir artmış olsa da bu artış yalnızca yeni kaydedilen dosyaya işlenir, çünkü "Fatura Ornek.xlsm" şablonunun kendisi bir daha hiç kaydedilmez ve diskte eski numarayla kalır. Aşağıdaki gibi SaveAs yerine SaveCopyAs ile ardından Save kullanılması, hem arşiv kopyasını hem de şablon dosyasının kendisini güncel numarayla kaydeder.

Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (12 satır). Giriş Yap

Neden bu şekilde çalışıyor?

  1. SaveAs, açık olan dosyanın adını kalıcı olarak değiştirir; bu nedenle "Fatura Ornek.xlsm" diskte güncellenmiş hâliyle kalmaz, yalnızca yeni isimli kopya güncel numarayı taşır.
    SaveCopyAs, çalışma kitabının mevcut hâlinin bir kopyasını farklı bir dosya adıyla diske yazar; bu sırada açık dosyanın adı ve penceresi değişmez.
    Devamında çalışan Save komutu, açık olan "Fatura Ornek.xlsm" dosyasını kendi adıyla kaydeder; böylece artırılan G3 değeri şablonun kendisine de işlenir ve bir sonraki açılışta fatura numarası doğru yerden devam eder.

Notlar

  • Workbook_Open olayında da aynı hücreye ayrıca +1 eklendiğini fark ettim; dosya her açıldığında otomatik artış ile makro çalıştırıldığında yapılan artış üst üste binebilir. Numaralandırmada çift atlama olmaması için bu iki artırma noktasından yalnızca birini kullanmanız önerilir.
    Kodun son satırındaki Application.DisplayAlerts ayarı, orijinal dosyanızda yanlışlıkla iki kez False olarak yazılmıştı; yukarıdaki sürümde kaydetme işlemleri bittikten sonra tekrar True yapılarak Excel uyarılarının normale dönmesi sağlanmıştır.
 
Geri
Üst