• DİKKAT

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

Eğerli planlama

Barons

Altın Üye
Katılım
14 Mayıs 2005
Mesajlar
967
Excel Vers. ve Dili
Microsoft Ofis 365
Birde fonksiyonlar bölümünde şansımı deneyeyim.
Konu makina planlama ve dosyanın içinde açıklamalar mevcut.

Yardımcı olacak arkadaşlara teşekkürler
 

Ekli dosyalar

Anlamakta epey zorlandım umarım istediginiz budur;

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
SON = Sheets("plan").Range("A65536").End(xlUp).Row
If Intersect(Target, Range("I" & SON)) Is Nothing Then GoTo ATLA
fd = Cells(SON, "I").Value
If Cells(SON, "I").Value = Cells(SON - 1, "I").Value Or Cells(SON, "I").Value = Cells(SON - 1, "V").Value Then
If Cells(SON, "I").Value = Cells(SON - 1, "I").Value Then Cells(SON, "S").Value = Cells(SON - 1, "T").Value
If Cells(SON, "I").Value = Cells(SON - 1, "V").Value Then Cells(SON, "S").Value = Cells(SON - 1, "AG").Value
Else
Cells(SON, "S").Value = Cells(SON, "B").Value
If Cells(SON, "I").Value = "" Then Cells(SON, "S").Value = ""
End If
ATLA:
If Intersect(Target, Range("V" & SON)) Is Nothing Then Exit Sub
fd = Cells(SON, "V").Value
If Cells(SON, "V").Value = Cells(SON - 1, "I").Value Or Cells(SON, "V").Value = Cells(SON - 1, "V").Value Then
If Cells(SON, "V").Value = Cells(SON - 1, "I").Value Then Cells(SON, "AF").Value = Cells(SON - 1, "T").Value
If Cells(SON, "V").Value = Cells(SON - 1, "V").Value Then Cells(SON, "AF").Value = Cells(SON - 1, "AG").Value
Else
Cells(SON, "AF").Value = Cells(SON, "B").Value
If Cells(SON, "V").Value = "" Then Cells(SON, "AF").Value = ""
End If
End Sub
 

Ekli dosyalar

çok teşekkürler yardımı ve ilginiz için..dünden beri kendime sıkıntı yapıyorum..bir çok yolları deniyorum ...sizin yaptığınızda kısmen olmuş çok teşekkürler...
ancak bir yerde hata yapıyor..örnek:I2 hücresi A ise yine AG2 değerini yani "11.06.2009" alıyor oysa T2 hücresindeki 19.06.2009 değerini almalıydı.
kısaca tekrar özetlersem: diyelimki I3 hücresinde A harfi var.Bu A harfini kendi üstündeki satırlarda yani kendi üstündeki sütunda ve V kolonunda arayacak ,eğer bulursa 2 kolondan hangisindeki bitiş tarihi daha büyükse onu S3 hücresine yazacak.Yani sadece bir üst satırı değil,üstünde ne kadar satır varsa kontrol edebilmeli.Çok zor biliyorum ama yardımınız çok önemli.umarım anlatabilmişimdir.Eğer o harfi bulamazsa kendi satırındaki B kolonundaki tarihi alacak.Bu kısım çalışıyor zaten.
 
Merhaba;
Alternatif
Eki inceleyin.
İyi çalışmalar.
Not:verilerinizin azlığından dolayı tam doğrulama yapamadım. (Gerekli kontrolleri yapın.)
İyi çalışmalar.
 

Ekli dosyalar

Açıklamalarım yetersiz oluyor galiba?
 
Sn.Muygun çok teşekkürler ...evet uyarınızda haklısınız...I3 hücresi olacaktı.
Sistem hatalı veri veriyor.
Örnek: I3 hücresine B girdim ama üstteki satırlarda B yok ,yok ise o zaman kendi 2 solundaki B3 hücresindeki değeri alması gerekiyor ama almıyor.
ayrıca , I3 hücresine C Girdiğimde de üstte C değerini bulup 19.06.2009 değerini almıyor.
 
Merhaba;
Tablonuzda yeterli veri olmadığından tam kontrol yapamıyorum.
Eğer 10-15 veri girerek tabloyu test eder ve hatalı olan kısımları belirtirseniz yeniden bakarım.
Ekteki tabloda ilk verininde formülle bulunabilmesi için ilk veri öncesi boş bir satır kullandım.
Tabloyu "veri girerek" tekrar deneyin.
İyi çalışmalar.
 

Ekli dosyalar

Sn.Muygun ilginiz için çok teşekkürler
ancak siz S ve AF yani başlangıç tarihlerini kontrol ediyorsunuz,oysa Bitiş tarihlerinin kontrol edilmesi gerekiyor yani T ve AG kolonlarının.Bu kolonlardaki en yüksek tarih S3 yada S4 satırındaki başlangıç tarihi olacak.Ancak I3 deki harf üst satırlarda var ise; yok ise en sağındaki B3 hücresini başlangıç değeri olarak alacak.

Örnek: I3 hücresinde A harfi olsun diyelim.Kendi üstündeki S kolonunu yani S1 ve S2 bakıldı diyelim A yok,o zaman V kolonuna bakıldı buradada A harfi yok ise S3=B3 hücresindeki başlangıç değeri olacak.Yok eğer S kolonunda A harfi var ama V kolonunda yok ise bu sefer S kolonundaki A harfinin olduğu satırdaki T kolonundaki Bitiş tarihini alacak.Yok eğer hem S hemde V kolonlarında A harfi var ise En yüksek BİTİŞ DEĞERİ hangisi ise onu S3 değerine yazacak.
Bu mantık B ve C harfleri içinde geçerlidir.

Sizi yoruyorum ancak benim için çok önemli bir konu.Tekrar çok teşekkürler
 
Eğer planlama

Sn. Muygun

Biraz daha veri olan bir dosya gönderiyorum.Aynı mantık burada S9 hücresi için geçerli.Gerçi bu mantık tüm satırlarda geçerli olacak ama şimdilik sadece S9 'da yapabilirsek ben kulpu sürükleyip aşağıdaki hücrelerede formülü kopyalamayı düşünüyorum.
 

Ekli dosyalar

Syn. Barons;
Tablonuzdaki mantığı ne yazıkki anlayamadım.
Örn:En son I8 hücresinde makine kodu=B ve S8 hücresinde 21.06.2009 tarihi var.
21.06.2009 tarihini nerden aldınız?
Tablonuzda 21.06.2009 tarihi yok (eğer bir şekilde bulduğunuz tarihi 1 gün artırıyorsanız bunu hangi hücre değerini bularak yapıyorsunuz.)
Sonuç olarak çözüm üretebilmek için önce tabloyu ve yapılmak isteneni anlamak gerekiyor.
İyi çalışmalar.
 
Sn. Muygun
Kırmızı renkli hücrenin üstündeki tüm satırlar hayali değerler...siz istediniz diye rastgele yapılmış veriler.Kırmızı renkli hücrede mantığı oturtamadımki üstündeki veriler sağlıklı olsun.Yani
S9 hücresinin üstündeki değerler saçma sapan rastgele değerler.Eğer S9 hücresinde bu mantık uygulanabilirse bu satırlar silinecek zaten
 
Eğer planlama

Sn.Muygun
Anlatımı kolaylaştırmak için ek dosya gönderiyorum.
Tekrar teşekkürler
 

Ekli dosyalar

Sn. Forum Ustadları sizlerden destek bekliyorum..sanıyorum forumun tarihinde sorulmuş en zor soru gibi geliyor bana.
 
3 saattir uğraşıyorum...pls yardımmmmmmm
 
eğerli planlama

Sn.Fedeal ilk hazırladığınız dosya daha iyi çalışıyor.Ek açıklamayla birlikte tekrar ekledim.
Sonuca çok yaklaştık.
Tekrar teşekkürler
 

Ekli dosyalar

dün akşam ekledigim dosya bu işlemi yapıyor inceledinizmi? Büyük harf kullanarak deneyiniz.
 
EVET İnceledim...T9 hücresine tarih girdiğimde yanlış verdi.A diye girdiğimde sağ tarafındaki tarihi aldı.bu sebeple tereddüte düştüm....Biraz daha bakayım...
 
Sn Fedeal
Sizin kodla olan çözümünüze hayranım ancak dün akşam gönderdiğiniz dosyada görebildiğim tek bir sorun var.
örnek:I9 hücresine C girelim ama üst satırlardaki makina harflerinin hepsini B ve A yapalım...yada Sadece B veya Sadece A yapalım..farketmez...o zaman C diye girdiğimizde I9 hücresine
sonuç: Boş (S9 hücresinde)

yani girilen harfi bulamadımı boş çıkıyor oysa aynı satırdaki B kolonundaki değeri alması gerekiyor.
denerseniz görecekseniz ne demek istediğimi..

zahmet veriyorum ...çok teşekkürler
 
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
SON = Sheets("plan").Range("A65536").End(xlUp).Row
If Intersect(Target, Range("I" & SON)) Is Nothing Then GoTo ATLA
Call FEDEAL
'------I SÜTUNU----------
If Cells(SON, "I").Value = "" Then
Cells(SON, "S").Value = ""
Exit Sub
End If
If Cells(SON, "I").Value = "A" Or Cells(SON, "I").Value = "a" Then
If Cells(1, "AM").Value = 0 Then
Cells(SON, "S").Value = Cells(SON, "B").Value
Else
Cells(SON, "S").Value = Cells(1, "AM").Value
End If
End If
If Cells(SON, "I").Value = "B" Or Cells(SON, "I").Value = "b" Then
If Cells(1, "AO").Value = 0 Then
Cells(SON, "S").Value = Cells(SON, "B").Value
Else
Cells(SON, "S").Value = Cells(1, "AO").Value
End If
End If
If Cells(SON, "I").Value = "C" Or Cells(SON, "I").Value = "c" Then
If Cells(1, "AQ").Value = 0 Then
Cells(SON, "S").Value = Cells(SON, "B").Value
Else
Cells(SON, "S").Value = Cells(1, "AQ").Value
End If
End If
Exit Sub
ATLA:
If Intersect(Target, Range("V" & SON)) Is Nothing Then Exit Sub
Call FEDEAL
'------V SÜTUNU----------
If Cells(SON, "V").Value = "" Then
Cells(SON, "AF").Value = ""
Exit Sub
End If
If Cells(SON, "V").Value = "A" Or Cells(SON, "v").Value = "a" Then
If Cells(1, "am").Value = 0 Then
Cells(SON, "AF").Value = Cells(SON, "B").Value
Else
Cells(SON, "AF").Value = Cells(1, "AM").Value
End If
End If
If Cells(SON, "V").Value = "B" Or Cells(SON, "v").Value = "b" Then
If Cells(1, "aO").Value = "" Then
Cells(SON, "AF").Value = Cells(SON, "B").Value
Else
Cells(SON, "AF").Value = Cells(1, "AO").Value
End If
End If
If Cells(SON, "V").Value = "C" Or Cells(SON, "v").Value = "c" Then
If Cells(1, "aQ").Value = 0 Then
Cells(SON, "AF").Value = Cells(SON, "B").Value
Else
Cells(SON, "AF").Value = Cells(1, "AQ").Value
End If
End If
End Sub

Sub FEDEAL()
Columns("ca").Clear
Columns("cb").Clear
Columns("cc").Clear
SON = Sheets("plan").Range("A65536").End(xlUp).Row
For I = 2 To SON

If Cells(I, "I").Value = "A" Then
SN = Sheets("plan").Range("CA65536").End(xlUp).Row + 1
Cells(SN, "CA").Value = Cells(I, "t").Value
End If
If Cells(I, "I").Value = "B" Then
SN = Sheets("plan").Range("CB65536").End(xlUp).Row + 1
Cells(SN, "CB").Value = Cells(I, "t").Value
End If
If Cells(I, "I").Value = "C" Then
SN = Sheets("plan").Range("CC65536").End(xlUp).Row + 1
Cells(SN, "CC").Value = Cells(I, "t").Value
End If
If Cells(I, "v").Value = "A" Then
SN = Sheets("plan").Range("CA65536").End(xlUp).Row + 1
Cells(SN, "CA").Value = Cells(I, "ag").Value
End If
If Cells(I, "v").Value = "B" Then
SN = Sheets("plan").Range("CB65536").End(xlUp).Row + 1
Cells(SN, "CB").Value = Cells(I, "ag").Value
End If
If Cells(I, "v").Value = "C" Then
SN = Sheets("plan").Range("CC65536").End(xlUp).Row + 1
Cells(SN, "CC").Value = Cells(I, "ag").Value
End If
Next
Cells(1, "AM").Value = WorksheetFunction.Max(Range("CA1:CA65536"))
Cells(1, "AO").Value = WorksheetFunction.Max(Range("CB1:CB65536"))
Cells(1, "AQ").Value = WorksheetFunction.Max(Range("CC1:CC65536"))
End Sub

küçük bir değişiklik halloldu

Cells(1, "aQ").Value = "" satırlarını
Cells(1, "aQ").Value = 0 yapınca düzeldi. sayfanın kod bölümüne ekleyin,iyi çalışmalar.
 
Son düzenleme:
Geri
Üst