• DİKKAT

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

Yakıt ve km takip

hassas

Altın Üye
Katılım
8 Temmuz 2009
Mesajlar
545
Excel Vers. ve Dili
2007-2010
Sayın Arkadaşlar iyi akşamlar dilerim.
ekte belirtilen dosya içerisinde gerekli açıklamayı yaptığım bir çalışma dosyam var, bu dosya ile ilgili yardımcı olabilirmisiniz,
iyi akşamlar diler çalışmalarınızda kolaylıklar dilerim.
 

Ekli dosyalar

Sayın üstadlar iyi akşamlar,
Yukarıdaki çalışma dosyamla ilgili yardımlarınızı bekliyorum.
İyi çalışmalar.
 
B4 için aşağıdaki formülü:

Kod:
=TOPLA.ÇARPIM((YAKIT!$A$2:$A$500>=SORGU!B$1)*(YAKIT!$A$2:$A$500<=SORGU!B$2)*(YAKIT!$B$2:$B$500=SORGU!$A4)*YAKIT!$C$2:$C$500)

C4 için aşağıdaki formülü:

Kod:
=TOPLA.ÇARPIM((KM!$A$2:$A$500>=SORGU!C$1)*(KM!$A$2:$A$500<=SORGU!C$2)*(KM!$B$2:$B$500=SORGU!$A4)*KM!$C$2:$C$500)

D4 için aşağıdaki formülü:

Kod:
=EĞER(VE(B4>0;C4=0);"Plakada yakıt var ama km yok!";EĞER(VE(B4=0;C4>0);"Plakada km var ama yakıt yok!";EĞER(VE(B4=0;C4=0);"Plakada yakıt ve km yok";(C4-B4)/C4)))

deneyiniz.

B1:C3 aralığına tarih girerken saat verisinden önce fazladan bir iki nokta üstüste kullanmışsınız. Onları sildikten sonra formüller doğru sonucu verecektir.

Listeleme işlemi ise biraz karışık bir iş ve beni aşıyor maalesef.
 
Sayin yusuf bey öncelikle çok teşekkür ederim tarih ve saat hatasını belirttiğiniz gibi değiştirdim. Soruyu vba altında sormam amacı yakıt ve km sayfalarında fazla veri olduğu için kasiyor. Diğer bir husus ise A ve B sütunları na gelen verilerin detaylarına F ile J sütunları nda gör mek istiyorum.
 
Kusura bakmayın tam bitirmeden hata ile gindermisim. Yani tarih aralığında A ile D sütunları arasına gelen toplam veriler den sonra A sütununda herhangi bir hücrenin üzerine tıkladığınızda o ilgili plaka nin detay verilerinin F ile J sütünü arasına tarih sırasına göre gelmesini istiyorum.
 
Sorgu sayfasının kod bölümüne ekleyip plakalara çift tıklayıp inceleyiniz.
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("A2:A500")) Is Nothing Then Exit Sub
Dim yk As Worksheet
Set yk = Sheets("YAKIT")
With Sheets("SORGU")
.Range("F4:I" & .Cells(Rows.Count, "F").End(3).Row+1).Clear
For i = 2 To 500
If .Cells(Target.Row, "A") = yk.Cells(i, "B") Then
son = .Cells(Rows.Count, "F").End(3).Row + 1
.Cells(son, "F") = .Cells(Target.Row, "A")
.Cells(son, "G") = Format(yk.Cells(i, "D"), "dd.mm.yyyy")
.Cells(son, "H") = yk.Cells(i, "C")
.Cells(son, "I") = yk.Cells(i, "E")
.Cells(son, "J") = WorksheetFunction.IfError((.Cells(son, "I") - .Cells(son, "H")) / .Cells(son, "I"), "")

End If
Next
End With
End Sub
 
Son düzenleme:
Sayin Vardar bey merhaba öncelikle yardimlarinizdan ve ilginiz den dolayi çok teşekkür ederim. Sizin gönderdiğiniz kodu sorgu sayfa kod bölümüne yapistirdim. Fakat A sütununda ki plaka nın üzerine tikladigimda F sütününa plakayı sıralıyor fakat G .H ve İ sütunları na hatalı sıralama yapıyor. Daha öncede belirttigim gibi yakıt ve km sayfalarındaki veriler ortalama yıllık olarak her sutunda toplam hücre 850,000 civarlarında . buda sorgu sayfasında A sutunundaki plakaya göre B,C v E Su tunlarında veri getirmede çok ciddi kasıyor. Bunun için B,C,D Sutunlarınıda sorgu sayfasındaki tarih ve saat aralığına göre kodla yapabilirmiyiz.
iyi çalışmalar.
 
Son düzenleme:
#6 Nolu mesajdaki kod düzenlendi deneyiniz.
Ayrıca aşağıdaki kod Sayın YUSUF44 beyin kodlarının makroya çevrilmişi. Deneyiniz.

Kod:
Sub mv()
Dim yk As Worksheet
Set yk = Sheets("YAKIT")
Set km = Sheets("KM")
Application.ScreenUpdating = False
With Sheets("SORGU")
.Range("B4:D" & .Cells(Rows.Count, "D").End(3).Row + 1).Clear
For i = 4 To .Cells(Rows.Count, "A").End(3).Row
.Cells(i, "B") = "=SUMPRODUCT((YAKIT!R2C1:R500C1>=SORGU!R1C)*(YAKIT!R2C1:R500C1<=SORGU!R2C)*(YAKIT!R2C2:R500C2=SORGU!RC1)*YAKIT!R2C3:R500C3)*1"
.Cells(i, "B").Value = .Cells(i, "B").Value
.Cells(i, "C") = "=SUMPRODUCT((KM!R2C1:R500C1>=SORGU!R1C)*(KM!R2C1:R500C1<=SORGU!R2C)*(KM!R2C2:R500C2=SORGU!RC1)*KM!R2C3:R500C3)*1"
.Cells(i, "C").Value = .Cells(i, "C").Value
.Cells(i, "D") = "=IF(AND(RC[-2]>0,RC[-1]=0),""Plakada yakıt var ama km yok!"",IF(AND(RC[-2]=0,RC[-1]>0),""Plakada km var ama yakıt yok!"",IF(AND(RC[-2]=0,RC[-1]=0),""Plakada yakıt ve km yok"",(RC[-1]-RC[-2])/RC[-1])))"
.Cells(i, "D").Value = .Cells(i, "D").Value
Next
End With
MsgBox "AKTARMA TAMAMLANDI"
End Sub
 
Son düzenleme:
Sayın vardar bey öncelikle iyi akşamlar dilerim.
kusura bakmayın gğnderdiğiniz kodları ekleyip çalıştıramadım hata verdi.
size zahmet olmaz ise ekleyip forma yükleyebilirmisiniz acaba.
 
Sayın vardar bey iyi akşamlar,
kendi orjinal dosyalarımı yükledim veriler belirlenen kriterler aralığında sorgu sayfasındaki B ve C sutunlarına doğru geliyor. Fakat A Suunundaki bir plakanın üzerine tıkladığımızda ise F ile J Sutunu arasındaki detay veriler gelmiyor.
.Cells(son, "J") = WorksheetFunction.IfError((.Cells(son, "I") - .Cells(son, "H")) / .Cells(son, "I"), "") bu hatayı veriyor.
 
Sizde nasıl bir hata veriyor bilmiyorum. Hatanın fotolarını ekler misiniz.
 
Sayın vardar iyi akşamlar

kusura bakmayın bugün dışarıda olduğum için cevap yazamadık,şimdi ekliyoryum.
Daha öncede belirttiğim gibi ekli resimdede görülüyor. B,C,D Sutunlarındaki veriler tarih ve saat aralığındaki toplamları geliyor.
fakat şlgili plakanın detay yakıt ve km verileri gün gün gelmiyor, ekteki hataları alıyorum.
 

Ekli dosyalar

  • KOD HATASI VERİYOR.jpg
    KOD HATASI VERİYOR.jpg
    20.9 KB · Görüntüleme: 3
  • Ekran Alıntısı.jpg
    Ekran Alıntısı.jpg
    19 KB · Görüntüleme: 3
İlgili plakanın Yakıt yada Km si boş ise bu hatayı verir böyle durumda sonuç ne olması gerekiyorsa belirtin.
 
Veri yoksa 0 olarak veya boş olarak gelmesi gerekiyor.
fakat örnek ekli dosyada da görüldüğü üzere O1001 ait B,C,D Sutunlarında verilerin hepsi yakıt ve km sayfalarında var ve sorgu sayfasına getirmiş.
 
Arkadaşım veri getirmede toplam olduğu için sorun yok ne varsa onu getiriyor lakin hata veren yer hesap sütunu normal olarak (I-H)/I formulünü el ile girsen bile "#SAYI/0!" hatası alırsın. Çünki detayları alıp hesap yaparken km sütunu boş yada 0 olunca olan bir olay Daha açıkcası KM sütunu enaz 1 ounca hata almazın. böyle durumu aşmak için se: Dim yk As Worksheet satırının altına
On Error Resume Next ekleyip deneyin.
 
Sayın vardar bey iyi akşamlar,
Öncelikle yaptığınız katkıdan dolayı çok teşekkür ederim,Siz ve diğer sayın üstadlar bizlere yardımcı olduğunuz ve zamanınızı ve emeğinizi harcadığınız için hakkınızı helal ediniz.
Tüm işlerinizde kolaylıklar ve yaşantınızda huzur ve saadetler dilerim.
 
Rica ederim. İşinizi gördüyse ne mutlu. Kolay gelsin.
 
Geri
Üst