• DİKKAT

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

Hakediş Ödemesi / Veri Kontrolü

Katılım
9 Ocak 2006
Mesajlar
106
Excel Vers. ve Dili
MS Excel 2007 - Eng.
Forumdaşlar Merhaba,

Çözüm ortaklarımıza bizlere excel olarak gönderdikleri servis formlarından çeşitli kontroller yaparak hakediş ödemesi yapıyoruz. Örneğin servis "Açıklama" kısmı boş ise bu ödemeyi yapmıyoruz fakat 1000 - 1500 satırda bunun kontrolü çok zorlaşıyor, ekte belirttiğim durum bir makro ile çözülebilir mi acaba?

Forumda çok güzel karşılaştırma örnekleri var (sayfa, sütun, mükerrer kayıt vb.) fakat bir türlü birşeyler yapamadım.

Saygılarımla,
 

Ekli dosyalar

Merhaba.
Taşeron verisi sayfasında;
-- T1 hücresine 50 (fiyat farkı kontrol sınırı) yazın,
-- S2 hücresine;
Kod:
=EĞER(YADA(H2="";VE(EĞERSAY(N2;"*"&"50K"&"*")+EĞERSAY(N2;"*"&"100K"&"*")+EĞERSAY(N2;"*"&"200K"&"*")=0;K2<>125);MUTLAK(Q2)>$T$1);MAK($S$1:S1)+1;"")
-- T2 hücresine de;
Kod:
=EĞER(H2="";"Açıklama YOK";"")&EĞER(VE(EĞERSAY(N2;"*"&"50K"&"*")+EĞERSAY(N2;"*"&"100K"&"*")+EĞERSAY(N2;"*"&"200K"&"*")=0;K2<>125);" İşçilik Tutarı Sorunu";"")&EĞER(MUTLAK(Q2)>$T$1;" Fiyat Sorunu";"")

formülleri aşağı doğru kopyalayın.

S sütununda sayı olan satırlar diğer sayfaya aktarılacak anlamına geliyor, T sütunundaki metinler ise aktarılma nedenidir.

Bu sonuçları bir kontrol edin, doğruysa İNDİS formülüyle kolaylıkla bu satırlar diğer sayfaya aktarılabilir.
 
Ömer Bey Merhaba,
Cevabınız için çok teşekkür ediyorum.
Uyguladığım,

* İşçilik Bedeli 0 TL olanlarda İşçilik Tutarı Sorunu hatası veriyor, vermemeli bu bir problem değil.

* 50K = 125 TL , 100K = 250 TL, 200K = 450 TL şeklinde 3 bakım kiti var. "Değişen Parçalar" içinde "100K" ifadesi varsa İşçilik Tutarı Sorunu vermemeli tutar doğru oluyor.

Resimdede ifade etmeye çalıştım.

Tekrar emeğiniz için teşekkür ediyorum..
 

Ekli dosyalar

  • ornek.xlsx
    ornek.xlsx
    15 KB · Görüntüleme: 10
  • ornek.jpg
    ornek.jpg
    22.1 KB · Görüntüleme: 4
Şu an bilgisayar başında değilim, cep telefonundan yazıyorum. Başka bir üye cevap vermezse, ancak akşama doğru cevap yazabilirim.
 
Merhaba.
Belge ekte.

Ayrıca bir de uyarım olsun.
Kullanıcı profilinizde Excel versiyon bilgisi olarak 2007 yazmışsınız ama
eklediğiniz belge daha yeni bir versiyonda düzenlemiş durumda.
Kullanıcı profilinizdeki excel versiyon bilgisini düzeltmeniz yerinde olur.
 

Ekli dosyalar

Son düzenleme:
Ömer Bey, size çok teşekkür ediyorum destekleriniz ve bilgilendirmeniz için. Excel bilgisi forumu aktif kullanmamamdan kaynaklanıyor malesef ;( Düzeltiyor olacağım.

Saygılar.
 
Son bir rica,

=IF(H2="";"Servis Açıklaması Yok - ";"")&IF(AND(COUNTIF(N2;"*"&"50K"&"*")+COUNTIF(N2;"*"&"100K"&"*")+COUNTIF(N2;"*"&"200K"&"*")=0;K2<>125);" İşçilik Bedeli Sorunu - ";"")&IF(ABS(P2)>$S$1;" Malzeme Fiyat Sorunu";"")

Yukarıda ki ifadenin içerisine eğerk K2 0 TL ise işçilik sorunu hatası vermeyecek şekilde derleyebilir misiniz?
 
Merhaba.
Sanırım son gönderdiğim belgeye bakma şansınız olmamış.
Son gönderdiğim belgedeki çözüm zaten makro çözüm sayılmaz.
Formülle çözümün sayfaya uygulandıktan sonra değer olarak hücreye yazılması şeklinde bir uygulama mevcut.

Kod'daki, aşağıda kırmızı olarak işaretlediğim satırların sol başına TEK TIRNAK eklerseniz
Taseron_Verisi sayfasındaki R sütununda, uygulanan formülü görebilirsiniz.
Kod:
[SIZE="2"].......
........
sont = t.[D65536].End(3).Row

With t.Range("R2:R" & sont)
    .Formula = "=IF(H2="""",""-- Açıklama Boş! Kontrol Edilmeli.""&CHAR(10),"""") & IF(AND(K2=0,N2=""""),"""",IF(AND(N2="""",K2>0),""-- Bakım YOK, Servis Bedeli Neden ""&TEXT(K2,""#.##0"") & "" TL. Kontrol Edilmeli""&CHAR(10),IF(OR(AND(COUNTIF(N2,""*""&""50K""&""*"")=1,K2<>125),AND(COUNTIF(N2,""*""&""100K"" & ""*"")=1,K2<>250),AND(COUNTIF(N2,""*""&""200K"" & ""*"")=1,K2<>450)),""-- İşçilik Tutarı Sorunu""&CHAR(10),"""")) & IF(ABS(Q2)>$R$1,""-- ""&TEXT(ABS(Q2-$R$1),""#.##0"")&"" TL Fiyat / Kur Farkı var neden?"",""""))"
[B][COLOR="Red"]    .Value = .Value[/COLOR][/B]
End With
.......
.......
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
[COLOR="red"][B]t.Range("R:S").Delete Shift:=xlToLeft[/B][/COLOR]
t.Range("R1") = a[/SIZE]


Gönderdiğim son belgenin Taseron_Verisi sayfasına gerçek verilerinizi yerleştirip, sayfadaki düğmeye fareyle
tıkladığınızda sonuç sayfasına gerekli satırlar aktarılıyor.
Bu şekilde denediğinizde yanlış gelen sonuç varsa söyleyin bakayım.
Sağlıcakla.
 
Geri
Üst