Sayısal Hücreleri Koşullu Nasıl Karşılaştırabilirim.?

Katılım
23 Mart 2006
Mesajlar
303
Excel Vers. ve Dili
Microsoft Office 2003
Excel 2003
Merhaba,

1.Ekli dosyam Ağ da Paylaştırılmış dosya olarak kullanılacak.Bu dosyayı aynı anda 20 kişi kullanacak Macroların çalışmasında bu bir problem yaratırmı ?

2.Ekli Dosyanın YEDEKPARÇA PLATFORMU nda PARÇA GİRİŞİ tuşuna basınca ekli dosyadaki TXT dosyamın içindeki parça numaralarını HESAP sayfasına alıyor.Buradaki parça numarası ve adetleride OPELSIP sayfasına alıyor.Benim istediğim almış olduğu bu parça numaralarını OPELSIP sayfasındaki parça numaraları ile karşılaştırması ve Durum kolonuna GELDi yazması.Ancak Karşılaştırma yaparken gelen parça sayısını dikkate almalı.

Örnek; Gelen Parça sayısı 5 tane sipriş edilen 10 tane ise sadece 5 tanesine geldi yazmalı.

Bu konu ile ilgili yardım eden olursa programımızı bitirmiş olucam.

Teşekkür ederim.

Saygılarımla
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
1.Ekli dosyam Ağ da Paylaştırılmış dosya olarak kullanılacak.Bu dosyayı aynı anda 20 kişi kullanacak Macroların çalışmasında bu bir problem yaratırmı ?
Evet, bunun için excel yardımında detaylı bilgi mevcuttur, bu bilgileri okumanızı öneririrm.

2.sorunuzda OPELSİP sayfasındaki sipariş noları, HESAP sayfasında hangi sütunda aranacaktır. Ben uyumlu bir sütun göremedim. HESAP sayfasındaki C sütunuda muhtemelen miktarı ifade ediyor. Birde bu karşılaştırma işlemi hangi butona basılınca gerçekleştirilecektir.
 
Katılım
23 Mart 2006
Mesajlar
303
Excel Vers. ve Dili
Microsoft Office 2003
Excel 2003
Sayın leventm,

OPELSIP sayfasındaki A kolonundaki sipariş noları HESAP sayfasındaki B kolonunda aranacak fakat gene HESAP sayfasındaki C kolunundaki adet sayılarını dikkate alacak.OPELSIP sayfasında sipariş geçilen adetden(C kolunu) az ise karşısına GELDİ yazmayacak.

Zannedersem biraz zor bir iş olacak.

saygılarımla
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodu butonunuza kopyalayarak deneyin.

[vb:1:601fee9502]On Error Resume Next
Set s1 = Sheets("opelsip")
Set s2 = Sheets("hesap")
For a = 2 To s1.[a65536].End(3).Row
say = WorksheetFunction.CountIf(s2.[b:b], s1.Cells(a, "a"))
If say > 0 Then
sat = WorksheetFunction.Match(s1.Cells(a, "a"), s2.[b1:b65536], 0)
s1.Cells(a, "j") = s2.Cells(sat, "c") & " adet gelmiştir"
End If
Next
[/vb:1:601fee9502]
 
Katılım
23 Mart 2006
Mesajlar
303
Excel Vers. ve Dili
Microsoft Office 2003
Excel 2003
Sayın levenm,

Ben zaten aşağıdaki kodla bu işlemi yaptırabiliyorum ;
Range("L2").Select

Set alan = Range("L2:" & [L65536].End(xlUp).Address)
For Each i In alan
Range("A2").Select
Do While Not IsEmpty(ActiveCell)
If i = ActiveCell.Value Then
ActiveCell.Offset(0, 10).Value = i.Offset(0, 1).Value
End If
ActiveCell.Offset(1, 0).Select
Loop
Next i

Benim istediğim ; Kullanıcılar parça siparişleri veriyor ve aynı parçadan iki farklı araç için iki farklı kullanıcı sipariş veriyor.OPELSIP dosyasında ayrı satırlarda aynı parça numarası ile iki adet parça var.Fakat gelen parça sayısı 1 adet.bu durumda birisine gelmiştir yazmalı ikincisine yazmamalı.Şu anki kodda her ikisinede bu parçalardan kaçar adet geldiği yazıyor.

Saygılarımla
 
Katılım
23 Mart 2006
Mesajlar
303
Excel Vers. ve Dili
Microsoft Office 2003
Excel 2003
Sayın leventm,
Sizin verdiğiniz kodu çalıştırdığım son hali ile dosyayı kaydettim.

Parça No Parça Adı Adet Danışman Durum
860485 Egr Valfi 1 Ali Uncu 1 adet gelmiştir
106007 Motor Kula 1 Ahmet Sdi 1 adet gelmiştir
1239319 Akü 1 Fatih Terzi 1 adet gelmiştir
423121 Oksijenrü 1 Emre Tekn 8 adet gelmiştir
4408723 Gaz Kelesi 1 Emre Tekn 1 adet gelmiştir
860485 Egr Valfi 1 Fatih Terzi 1 adet gelmiştir[/b]

Yukarıdada görüldüğü gibi ayrı ayrı kişiler EGR valf siparişi vermiş fakat gelen parça sayısı 1 adet olduğu halde iki kişiyede parçanın geldiği bilgisi gitmiş oluyor.
Saygılarımla
 
Katılım
23 Mart 2006
Mesajlar
303
Excel Vers. ve Dili
Microsoft Office 2003
Excel 2003
Arkadaşlar ,

Konuyla ilgili bilgisi olan varsa lütfen yardım etsin

Teşekkürler.
 
Katılım
23 Mart 2006
Mesajlar
303
Excel Vers. ve Dili
Microsoft Office 2003
Excel 2003
Sevgili arkadaşlar bu konuyla ilgili yardımcı olabilirseniz programı kullanmaya başlayabileceğim.Ben bir takım çalışmalar yaptım fakat sonuca ulaşamadım bir türlü.

Saygılar
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodu deneyin.

[vb:1:4ae2c56af1]
On Error Resume Next
Set s1 = Sheets("opelsip")
Set s2 = Sheets("hesap")
s1.[j2:j65536].ClearContents
For a = 2 To s1.[a65536].End(3).Row
say = WorksheetFunction.CountIf(s2.[b:b], s1.Cells(a, "a"))
gelen = WorksheetFunction.SumIf(s2.Range("b:b"), s1.Cells(a, "a"), s2.Range("c:c"))
sipmik2 = WorksheetFunction.SumIf(s1.Range("a2:a" & a - 1), s1.Cells(a, "a"), s1.Range("c2:c" & a - 1))
sipmik = WorksheetFunction.SumIf(s1.Range("a2:a" & a), s1.Cells(a, "a"), s1.Range("c2:c" & a))
If say = 0 Or sipmik2 = gelen Then GoTo 10
sat = WorksheetFunction.Match(s1.Cells(a, "a"), s2.[b1:b65536], 0)
If gelen >= sipmik Then s1.Cells(a, "j") = s1.Cells(a, "c") & " adet gelmiştir"
If gelen < sipmik Then s1.Cells(a, "j") = gelen - sipmik2 & " adet gelmiştir"
10 Next
[/vb:1:4ae2c56af1]
 
Katılım
23 Mart 2006
Mesajlar
303
Excel Vers. ve Dili
Microsoft Office 2003
Excel 2003
Sayın leventm,

Engin bilginiz sayesinde programı bitirdim.Çok teşekkür ederim

Saygılar.
 
Üst