VBA - ✅ Hücre Aktarma Sorunu | Excel Destek - Excel Forumu
Konuyu başlatan mc_exrem
forum excel hücre seçili hücre aktar
KASA DEFTERİ sayfasında "BuGünüYazdır" butonu ile içinde bulunduğum günün çıktısını aldırırken F1 hücresindeki veriyi D3 hücresine aktarıyor ve ertesi güne hazır hale geliyor ancak aynı gün içinde yeni veri girince tekrar çıktı almak istediğimde F1'i D3'e aktardığı için F1 deki sonuç yanlış çıkıyor. Bu aksaklığı nasıl giderebilirim. Yardımlarınız için teşekkür eder saygılar sunarım.
Merhabalar Sn. mc_exrem;
Kasa Defteri isimli sayfanın kod bölümünde yer alan Worksheet_Change kodlarına aşağıdaki satırları ekleyiniz.
-- End Sub satırından önce eklenecek kodlar.
-- Bu kod satırı, E sütununa değer girdiğiniz zaman; D1 ile E1 hücresini karşılaştırır.
-- Eğer D1 hücresindeki değer E1 hücresindeki değerden küçük olacaksa, E sütununa değer girilmesine izin vermez.
Bu şekilde Gün Sonundaki değerin eksiye düşmesini engelleyebilirsiniz.
Tepkiler: Bilgi ve mc_exrem
Merhaba Sayın @mc_exrem . Foruma hoşgeldiniz.
Ben de fikrimi belirteyim dedim.
-- TARİH olmayan veriler: Öncelikle, belgede F sütununda yer alan ve TARİH GİBİ GÖRÜNEN TÜM VERİLERin tarih OLMADIĞINI,
bir kısmının METİN olduğunu hatırlatayım. F sütunundaki 21 veri dışındaki tüm veriler TARİH DEĞİL METİN.
Bu durumu F sütununa FİLTRE uyguladığınızda YILlar itibariyle gruplanmayan verilerden anlayabilirsiniz.
Bunu düzeltmek için boş-ugun bir hücreye 1 yazın ve bu hücreyi kopyalayın,
ardından da F sütunundaki dolu hücrelerin tümünü seçip >> ÖZEL YAPIŞTIR >> DEĞERLERİ >> ÇARP >> TAMAM şeklinde işlem yapın.
Yoksa bu tarihlere göre yapacağınız hesaplamalarda oluşacak muhtemel hatalı sonuçları fark edemeyebilirsiniz.
-- KIRMIZI BAKİYE sorunu: Belgenizdeki verilere göre KASAda OLMAYAN PARALARın ÇIKIŞI yapılmıştır.
Uygun bir alana 05.08.2019'dan bugünkü tarihe kadar bir tarih listesi oluşturup, bu tarihlere göre veri alanındaki giriş ve çıkışlar
için yanındaki hücrelere ETOPLA formülü yazıp tarih listesinin yanına sonuçları yazdırın.
Sonra da bir sonraki sütunda, bir önceki günden devreden + ilgili gün giriş toplamı - ilgili gün çıkış toplamı
formülünü uygulayarak liste boyunca kopyalayın.
Göreceğiniz şu olacak; ilk günden başlayarak hemen hemen tüm günler için olmayan para kasadan çıkmıştır. Böyle bir şey mümkün değildir.
Hesaplamalarım beni yanıltmıyorsa; belgeyi kullanmaya başladığınız İLK GÜN için ÖNCEKİ GÜNDEN DEVREDEN
nakit tutarı olarak en azından 7.565,00 TL GİRİŞ kaydı yapılmalıdır ki böylece, yukarıda değindiğim KIRMIZI BAKİYEler oluşmasın.
Buna göre de 05.02.2020'den 06.02.2020 gününe devreden mevcut nakitin de belgenizdeki gibi 2.930,00 TL değil en azından 2.950,00 TL olması gerekir.
-- Başlangıç mevcudu neden genel toplama göre bulunan ve 2.930,00 TL'lik bugüne devreden tutarı sağlayan 7.545,00 TL değil de 7.565,00 TL olmalıdır?
Bunun cevabı da 7.545,00 giriş yapsanız da 04.09.2019 ve 09.09.2019 tarihlerinde oluşacak -15,00 ve -20,00 TL KIRMIZI BAKİYEler.
Sonuç olarak; bu nedenlerle başlangıçta KASAda en azından 7.565,00 TL olmalıdır.
Bence öncelikle yukarıdaki açıklamalara göre örnek belgenizde düzenleme yapıp, örnek belgenizi yenileyin ve
onun üzerinden diğer sorun/ihtiyaçlarla ilgili konulara bakılsın.
Biraz uzun mesaj yazdım ama konunun netleşmesi bakımından gerekliydi.
Sayın @Ömer BARAN ve @AhmetRasim öncelikle hoşbuldum ilginiz için çok çok teşekkür ederim. Tavsiyelerinizi yarın öğleden sonra deneyip bilgilendireceğim. Saygılar selamlar
her şeyi en ince ayrıntısına kadar detaylandırmışsınız çok teşekkür ederim
kod kısmıyla açıklma kısmı karışmış galiba? ayırabilir misiniz
Sayın @mc_exrem .
Sorununuz çözülmüş oldu mu olmadı mı?
Bunu net ifade ederseniz, konuyu ÇÖZÜLDÜ olarak işaretleyelim.
Yok, konu çözülmüş değilse;
belgenizin, önceki cevabımda belirttiğim sorunların giderildiği yeni halini ekleyerek
YAZDIRMA konusuyla ilgili isteğinizi iletin ki konuya bakılabilsin.
Tepkiler: mc_exrem ve Bilgi
Merhabalar Sn. mc_exrem
kod kısmıyla açıklma kısmı karışmış galiba?
Neresi karışmış anlamadım.
Kodları eklerken sorun olduysa şu adımları takip ediniz.
-- KASA DEFTERİ isimli sayfayı açınız.
-- Alt + F11 tuşlarına basınız.
-- Açılan sayfada Private Sub Worksheet_Change (ByVal Target As Range) ile başlayan End Sub ile biten kod bloğunu aşağıdaki kodlar ile değiştiriniz.
Tepkiler: cakarem ve mc_exrem
kod çalışmıyor yada devre dışı bırakılmış uyarısı veriyor.
çözülmedi henüz malesef.
Yukarıdaki adım uygulanmıştır. Ekli dosyayı inceleyiniz.
Tepkiler: Sancarefe ve mc_exrem
ilginiz için teşekkür ederim ancak bir önceki devri geri almazsa sonuç yine yanlış çıkıyor.
Yani Günsonundaki 7070,00 tl yi devire attıktan sonra düzenlemeyi yapıp çıktı alırken eski devri (4205 tl) getirmesi gerekiyor. Bu mümkün mü yada başka türlü nasıl yapabiliriz?
Anladığım kadarıyla bir önceki günün devir kısmının sabit kalmasını istiyorsunuz. Bu nedenle ya bu değeri bir yerde saklamalısınız yada gün sonu gelmeden (23:59) değişiklik yapılmaması gerekmektedir. XFD sütununda tarih ve devir bilgisi saklancak şekilde dosya hazırlanmıştır.
Merhaba Sayın @mc_exrem .
9 numaralı cevaba eklediğiniz örnek belgeye baktığımda;
3 numaralı cevabımdaki hususlara yönelik belgede herhangi bir değişiklik göremiyorum.
Kırmızı bakiye durumu aynı şekilde duruyor, tarih sütununda yine METİN olan tarih gibi görünen veriler var.
-- Öncelikle TARİH sütununa, mevcut kod üzerinden yazdırılan tarihlerin, tarih gibi görünen METİN değil
gerçekten tarih olarak yazılmasını sağlamak için; alt taraftan KASA DEFTERİ sayfasının adına fareyle sağ tıklayıp
KOD GÖRÜNTÜLEyi seçtiğinizde karşınıza gelecek VBA ekranında sağ tarafta yer alan aşağıdaki kod'da,
kırmızı renklendirdiğim kısımlarını silin. Yani ilgili satırda sadece .... = Now kısmı kalsın.
-- VBA ekranında MODULE16 içerisinde bulunan EŞİTLE isimli makroda,
aşağıda kırmızı renklendirdiğim kısımları silip yeşil olanları ekleyin.
Böylece YAZDIR düğmesine tıkladığınızda, belgenin alt satırlarında bugüne ait kayıt varsa,
(yani gün içerisinde iseniz) F1'den D3'e aktarma gerçekleşmez, ertesi gün veya gece yarısından sonra
YAZDIR düğmesine tıkladığınzda, alt kısımdaki satırlarda F3'teki yani günün tarihi hiç olmayacağından F1'den D3'e aktarma gerçekleşir.
Sanıyorum istediğiniz bu.
tarih kodunu ve bu kodu ekledimancak bu hatayı verdi
bunları sildiğim zaman verileri toplamıyor.? d1 ve E2 ye aktarmıyor
-- D1 ve E1 hücrelerindeki formüller:
Hücreye sadece tarih değil. tarih-saat bilgisi yazdırılmasıyla ilgili bir durum.
D1'deki formülü =ETOPLA(F3:F65535 ; ">=" & BUGÜN() ; D3 : D65535)
E1'deki formülü =ETOPLA(F3:F65535 ; ">=" & BUGÜN() ; E3 : E65535)
-- SuzYaz isimli makro kodları:
MODUL16'daki makronun yeşil renklendirdiğim satırını düzeltin.
-- EŞİTLE isimli makro kodları:
MODULE14'teki makroyu aşağıdakiyle değiştirin.
bu çalışma sayfasında KASA DEFTERİNE AYHAN AVANS yazınca AVANSLAR sekmesine değeri otomatik atıyordu. Bu şekilde oraya da atmıyor.
Yeni soru/sorun/ihtiyaçla ilgili duruma da bakılır elbette ama öncelikle,
konuyu açma sebebiniz olan kasa defterini gün içerisinde birden fazla kez yazdırma halinde
devreden tutarın başka hücreye aktarılması/aktarılmaması hususuyla ilgili kısmın
çözülüp çözülmediğini net ifade ederseniz iyi olur.
olarak değiştirdim ancak verileri yine toplamıyor
Salın @mc_exrem .
Önünüzde 2 seçenek var;
-- Kod'daki .... = Now kısmını .... = Int(Now) olarak değiştirip
1'inci satırlardaki formülleri =ETOPLA($F$3:$F$65536;BUGÜN() ; D3 : D65536) olarak değiştirmek,
-- Kod'daki .... = Now kısmı bu şekilde duracaksa formülü =ETOPLA($F$3:$F$65536;">="&BUGÜN();D3 : D65536) şeklinde kullanmak.
Her iki seçenek için de olmazsa olmaz koşul,
F sütununda yer alan ve tarih gibi görünse de tarih değil METİN olan verilerin tarihe dönüştürülmesi.
Bu konudaki açıklamayı da daha evvelki 3 numaralı cevabımda yer alan " --Tarih olmayan veriler " altbaşlığında yapmıştım.
VBA ❔ C1 Hücresine yazdığım türkçe karakterleri....dığından
f(×) ✅ Seçilen hücre aralığında belirlenen kriterdeki veriler var mı? yok mu?