• DİKKAT

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

Karşılık Gelen Değeri Bulmak.

Burada bir çeşit tezgah yükleme programı yapmak istiyorum. "Çakışma" sutundaki sayı 2 den büyükse, bunun sebebi 27 ve 28. satır numarasındaki sayıların aynı aralıkta olmasından yani tezgahların çakışmasından kaynaklanıyor.
Bense şunu yapmak istiyorum. Bu çakışma olduğunda yani değer 2 den büyükse bunun hangi operasyon numarasından kaynaklandığının yanındaki hücreye yazmasını istiyorum.
NOT: Birden fazla çakışma olabilir.
Şimdiden teşekkür ederim.
Kolay Gelsin...

26. satırda 3 değeri var. Formüllere baktığımızda bu değerden büyük yada eşit olanlar deniyor bu koşulu sağlayan birden falza operasyon var. Hangisnin numarası yazılacak.

Bu 3 rakamı bulunurken hem C hemde D kolonundaki değerler taranıyor sonra çıkan sonuç bir birinden çıkarılarak bulunuyor.

Aradığımız operasyon kodu hangi olmalı, detaylı bir örnek verebilir misiniz?
 
İlk mesajınızdaki tablo ile sağlıklı çalışmıyor. Belki o tabloda değerleri düzgün olmayabilir. Yada kod yanlış çalışıyordur.

İkinci gönderdiğiniz tablo ile uyumlu ve aynısonucu veriyor.

Başlık 1. satırda veriler 2. satırdan başlamalı.
Program çakışma sayılarına bakmıyor. Kendi mantığı ile çakışma tespit ediyor.

Kontrol ediniz.


http://www.dosyaupload.com/J0b

Kod:
Sub Tezgah_kontrol()
  sonsatir = Cells(Rows.Count, "A").End(3).Row
  For i = 2 To sonsatir
     igiris = Cells(i, 3)
     icikis = Cells(i, 4)
     ioperasyon = Cells(i, 1)
    
     For j = 2 To sonsatir
       jgiris = Cells(j, 3)
       jcikis = Cells(j, 4)
       joperasyon = Cells(j, 1)
       
       If igiris >= jgiris And icikis <= jcikis And i <> j Then
           Cells(i, 6).Value = joperasyon
       End If
      Next j
  Next i
End Sub
 
Son düzenleme:
İlk mesajınızdaki tablo ile sağlıklı çalışmıyor. Belki o tabloda değerleri düzgün olmayabilir. Yada kod yanlış çalışıyordur.

İkinci gönderdiğiniz tablo ile uyumlu ve aynısonucu veriyor.

Başlık 1. satırda veriler 2. satırdan başlamalı.
Program çakışma sayılarına bakmıyor. Kendi mantığı ile çakışma tespit ediyor.

Kod:
       If igiris >= jgiris And icikis <= jcikis And i <> j Then
           Cells(i, 6).Value = joperasyon
       End If
Kontrol ediniz.


Kod:
Sub Tezgah_kontrol()
  sonsatir = Cells(Rows.Count, "A").End(3).Row
  For i = 2 To sonsatir
     igiris = Cells(i, 3)
     icikis = Cells(i, 4)
     ioperasyon = Cells(i, 1)
    
     For j = 2 To sonsatir
       jgiris = Cells(j, 3)
       jcikis = Cells(j, 4)
       joperasyon = Cells(j, 1)
       
       If igiris >= jgiris And icikis <= jcikis And i <> j Then
           Cells(i, 6).Value = joperasyon
       End If
      Next j
  Next i
End Sub
[/QUOTE


İlginiz için teşekkürler. Ancak ben kod kullanmayı bilmiyorum. Bunun formüllerle yapılma durumu var mı acaba?
 
Formül ile çözüm sunacak arkadaşlar olabilir.

Makro için dosya mesajıma eklendi.

Tabloyu güncelleyip KONTROL butonuna basınız.
 
Geri
Üst