• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Veri Al, 2 Tarih Arası, Malzeme Seçimli

  • Konbuyu başlatan Konbuyu başlatan 1Al2Ver
  • Başlangıç tarihi Başlangıç tarihi
Katılım
5 Kasım 2007
Mesajlar
4,727
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Merhaba,

"GİRİŞ_KARŞILAŞTIRMA" sayfasında ;

A1'den seçilen malzemeye göre ;

"MALZEME_GİRİŞİ" sayfasından, ilgili tarihler arası (B4:C4), (I4:J4) ve (P4:Q4)
tedarikçi tedarikçi, makro ile 3 adet tablo oluşturmak istiyorum.

Teşekkür ederim.
 

Ekli dosyalar

Son düzenleme:
Merhaba.

Dosya ekte.

AÇIKLAMA:
Yazma kodlarında, For..Next döngüsü içerisindeki;
-- ilk IF...ELSEIF..END IF yapısı 4'üncü satırdaki tarihler için,
-- ikinci IF...ELSEIF..END IF yapısı alt taraftaki tablonun oluşması içindir.
-- gerisi TANIMLAMA/TEMİZLEME/BİÇİM vs.
-- 4'üncü satırda iki hücreye AYNI YIL yazılırsa, veriler solda olana yazılır.
-- 4'üncü satırda YIL yazılmazsa o alan boş kalır.
-- Kod'un yaptığı işlemin doğruluğunu, 4'üncü satırda mevcut formüllerle aynı sonucu verip vermediğine göre anlayabilirsiniz.
.
 

Ekli dosyalar

Sayın Ömer BARAN merhaba,

Emeğiniz ve anlayışınız için teşekkür ederek başlamak istiyorum,

Kod gayet güzel çalışıyor,

Ancak, ilgili tarihleri (B4,C4), (I4,J4) ve (P4,Q4) ben elle seçmek ve hesabı da bu seçime göre yaptırmak istiyorum,

Elle seçime izin veriyor, bu durumda D4,E4, K4,L4 ve R4,S4 formüllü olduğu için sorun olmuyor, ancak aşağıya oluşan detay liste değişmiyor.

Örneğin, EKMEK için ;

B4:15.02.2016, C4:17.02.2016 olduğunda,

Miktar (D3); 3800, tutar (E3) ; 594,96 ve ort.fiyat (F3); 0,1566 iken,

D6; 5200 E6; 813,12 ve F6: 0,1564 te kalıyor.

6.satırdan itibaren, miktar, tutar ve ort.fiyatın da elle girilen tarihlere göre hesaplanmasını rica ediyorum,


Tekrar teşekkür ederim.
 
Şu an bilgisayar başında değilim.
Yani A4, H4 ve O4 teki yıl bilgilerinin bir önemi yok,
tarihler elle girilecek ve listeler de bu tarihlere göre oluşacak doğru mudur?
Bilgisayar başına geçince bakarım.
 
Sayın Ömer BARAN tekrar merhaba,

Evet, A4, H4 ve O4 teki yıl bilgilerinin bir önemi yok, tablonun ait olduğu yılı göstermesi açısından yazılıyor,

Tarihler elle girilecek ve listeler de bu tarihlere göre oluşacak.

Şayet zor olmayacaksa ve vaktiniz olursa, 2 tarih arası ve malzemeye göre gelen tedarikçiler, formülle nasıl alınabilir, formülü rica edebilir miyim ?

Her şey için bir kere daha teşekkür ederim.
 
Tekrar merhaba.

Belge ekte.

NOT: Ekteki belgeyi yeniledim ( 10.03.2018 01:13 )
Yeni belgeyi indirerek kontroller yapınız.
-- Eski kod'daki bir hata düzeltildi,
-- Alternatif yeni bir makro eklendi.

.
 

Ekli dosyalar

Sayın Ömer BARAN, tekrar merhaba,

Teşekkür ederim, ellerinize sağlık, istenilenden de daha mükemmel olmuş, sağ olun, var olun.

Ricam; Eklediğiniz dosyada Ad Tanımlamadan, "Malzemeler"i silmenizdir.

Saygılarımla.
 
Hem ilk, hem de ikinci eklediğim belgede mevcut olan, Malzemeler isimli AD TANIMLAMAsı silinerek her iki ek yenilendi.
Kendi eklediğiniz belgedekini de silmeyi unutmayınız.
.
 
Sayın Ömer BARAN, merhaba,

Anlayışınız ve nezaketiniz için bir kere daha teşekkür ederim.

Saygılarımla.
 
Tekrar merhaba.

Veri yığını biraz büyüdüğünde, daha önce eklediğim belgedeki döngü işleminin biraz vakit alacağını düşündüm.
Eski makronun yerine, filtre ile desteklenmiş yeni makroyu kullanamınızın yerinde olacağını düşünüyorum.

Anlamlı veriler olacak şekilde veri yığınını çoğaltarak iki kod'u hız bakımından karşılaştırıp sonucunu, konu sayfasına yazarsınız.

NOT: Son eklediğim belgeyi yeniledim ( 10.03.2018 01:13 )
Yeni belgeyi indirerek kontroller yapınız.
-- Eski kod'daki bir hata düzeltildi,
-- Alternatif yeni bir makro eklendi.

.
 
Sayın Ömer BARAN merhaba,

Yenilenen dosyayı indirdim,

Kontrolleri yaptığımda sonuçları aktarırım,

Teşekkür ederim.
 
Sayın Ömer BARAN merhaba,

Her 2 kod için sonuçlar resimdeki gibidir.



Bilgilerinize sunulur,

Teşekkür ederim.
 
Son düzenleme:
Sayın Ziynettin merhaba,

Zahmetiniz ve duyarlığınız için çok teşekkür ederim.

Saygılarımla.
 
Tekrar merhaba.

Anladığım kadarıyla; aynı verilerle ve aynı kriterlerle,
kodlardan her ikisi, bir'den fazla kez çalıştırıldığında;
birbirinden farklı sonuçlar alındığını söylüyorsunuz sanırım.

Olmaması gerekir ama dosyayı görmeden de birşey söylemem mümkün deği.
Belirttiğiniz haliyle veri tablonuz içerisinde olacak şekilde dosya yüklerseniz bakarım ve gerekiyorsa kodları güncellerim elbette.

Aynı verilerle Sayın Ziynettin'in verdiği çözüm dosyasındaki kodlar çalıştırıldığında yine aynı sonuç alınıyor gördüğüm kadarıyla.

Benim eklediğim örnek belge üzerinden farklı sonuç hiç almadım.
Kolay gelsin.
.
 
Sayın Ömer BARAN merhaba,

11.mesajınızda ;

Anlamlı veriler olacak şekilde veri yığınını çoğaltarak iki kod'u hız bakımından karşılaştırıp sonucunu, konu sayfasına yazarsınız.

şeklindeki isteğiniz üzerine, kodları test edip size bilgi verdim, her hangi bir yanlış anlaşılma olmaması için açıklamak istedim.

2 kod arasındaki hesaplama farkının 3 ila 5 saniye olması, 800 satırlık veride benim için büyük bir problem yaratmıyor, ancak satır sayısı 5000'i geçerse ne olur bilemiyorum.

İlginiz için teşekkür ederim.

Saygılarımla.
 

Ekli dosyalar

Sayın Ziynettin merhaba,

A1'den seçilen malzemenin yıllardan birinde girişi yoksa program hata veriyor,

Örnek , A1'den Elma seçildi, ancak 2018 girişi yok, burada hata alıyorum.

Teşekkür ederim.
 

Ekli dosyalar

Tekrar merhaba.

Ben süre değil de işlem sonucunda farklılık var diye belirttiğinizi düşünmüştüm.
Belgedeki;
-- ilk kod, koşullar bakımından veri tablosundaki tüm satırları tek tek kontrol eder,
-- ikinci kod ise, koşullara göre veri tablosuna filtreler uygular (üç yıl için ayrı ayrı yani 3 kez),
ve filtre sonucunda kalan satırları tek tek kontrol eder.

Kanaatim o ki; filtre yöntemi olan ikinci kod birinciden daha hızlı sonuç verecektir.
Ayrıca; her iki kod için geçerli olmak üzere;
-- Kod'un Set.....(sayfa adları) satırlarının hemen altına aşağıdaki kırmızı renkli satırı,
-- End Sub satırının üstündeki MsgBox satırlarından önce de aşağıdaki mavi satırı eklerseniz,
işlemin gerçekleşmesi daha hızlı olacaktır.
.
Kod:
Set mg = Sheets("MALZEME_GİRİŞİ"): Set gk = Sheets("GİRİŞ_KARŞILAŞTIRMA")
[COLOR="Red"][B]Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual[/B][/COLOR]

..... diğer kod satırları .....

[B][COLOR="Blue"]Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic[/COLOR][/B]
MsgBox ............
 
Sayın Ömer BARAN merhaba,

Gösterdiğiniz ilgi ve önerileriniz için bir kez daha teşekkür ederim,

Önerilen ilaveler her 2 koda da yapıldı ve inanılmaz bir sürat elde edildi,

İlk denemede 1.Kod ile 0.24, 2.Kod ile de 0.34 saniye ile verileri aldım.

Tekrar teşekkür ederim.

Saygılarımla.
 
Geri
Üst