• DİKKAT

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

Aradaki Fark..!

Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Merhaba
F3:F sütuna formüllerle gelen rakamsal veri var.
I3:I Sütunda ise F3:F gelen ilk rakamı etkisiz, ondan sonra F3:F rakamda yükselme olmuş ise, Metre Üretim Olmuştur. Düşüş olduğunda ise Metre Sevk Olmuştur gibi bilgi vermesini istiyorum.
Örneğin F3:F 1.000 bu rakam daha sonra, 1.500 olduğunu var sayalım. 500 Metre Üretim Olmuştur.
F3:F 1.000 bu rakam daha sonra 250 olduğunu varsayalım. 750 Metre Sevk Olmuştur.
F3:F veri yok ise, I3:I boş olmalı. Bu makronun tetiklenmesi ise sayfaya her girişte olması gerekmektedir. Bu konu daha önce bir kaç kez gündeme getirdim, lakin sonuca gidemedim. Yardımcı olabilir misiniz?
Teşekkür ederim, iyi çalışmalar dilerim.
 
Merhaba Zafer bey, Uzman hocam,
bu konu tam manasıyla hiç çözülmedi ki yapılan makrolar hep hata verdi, bu nedenle bir kaç kez gündeme geldi. bu benim için çok önemli, yani açıyorsam inat falan yaptığımız yok kimseye, Sayın uzman hocamızda tam manasıyla konuyu bastırmış.2 yıllık üyeyim böyle birşeyi neden yapayım ki.
 
Merhaba

Hata veren satırı yazabilirmisiniz.
 
Merhaba Zafer Bey, Bu konu bildiğiniz üzere bir kaç kere açıldı. Hepsinde de dediğim gibi sonuca gidemedik. Sanırım bahsettiğimiz soruda kodları ekliyorum makrosu olarak kayıt ediyorum ve yeniden giriş yapıyorum her nereyi tıklarsam hata alıyorum. Dolayısıyla deneyemedim bile.
Ben konuya istianeden yeniden dosya ekliyorum. Bu dosya üzerinden devam edersek sorunsuz olabilir. Tekrardan teşekkür ederim. İyi akşamlar dilerim.
 

Ekli dosyalar

  • fark.rar
    fark.rar
    405.9 KB · Görüntüleme: 49
Merhaba,

"ÇALIŞMA" isimli sayfanızın kod bölümüne aşağıdaki kodu uygulayın.


Kod:
Option Base 1
 
Private Sub Worksheet_Activate()
    Dim Veri(), X, Dizi(), Fark, Satir, Veri_1, Veri_2
 
    If Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut Then Exit Sub
 
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
         
    Satir = Cells(Rows.Count, 2).End(3).Row
    If Satir < 3 Then Exit Sub
    
    If Satir = 3 Then
        If Cells(Satir, "F") = "" Then
            Veri_1 = 0
        Else
            Veri_1 = Cells(Satir, "F")
        End If
        
        Application.CalculateFull
     
        If Cells(Satir, "F") = "" Then
            Veri_2 = 0
        Else
            Veri_2 = Cells(Satir, "F")
        End If
        
        Fark = Format((Veri_2 - Veri_1), "#,##0.00")
 
        If Fark < 0 Then
            Cells(Satir, "I") = Fark & "  Metre Sevk Olmuştur."
            Cells(Satir, "I").Interior.ColorIndex = 6
        ElseIf Fark > 0 Then
            Cells(Satir, "I") = Fark & "  Metre Üretim Olmuştur."
            Cells(Satir, "I").Interior.ColorIndex = 3
        Else
            If Cells(Satir, "I") = "" Then
                Cells(Satir, "I").Interior.ColorIndex = xlNone
            End If
        End If
    
        If Cells(Satir, "F") = Cells(Satir, "G") Then
            Cells(Satir, "I") = "Üretim Tamamlanmıştır."
            Cells(Satir, "I").Interior.ColorIndex = 43
        End If
    
        If Cells(Satir, "F") < Cells(Satir, "G") Then
            Cells(Satir, "I") = Format(Cells(Satir, "G") - Cells(Satir, "F"), "#,##0.00") & " Metre Fazla Kumaş Vardır."
            Cells(Satir, "I").Interior.ColorIndex = 33
        End If
    Else
    
        Veri = Range("F3:F" & Satir).Value
        
        ReDim Dizi(UBound(Veri))
        
        For X = 1 To UBound(Veri)
            Dizi(X) = Veri(X, 1)
        Next
        
        Application.Calculate
        
        For X = 3 To UBound(Dizi) + 2
            If Dizi(X - 2) = "" Then
                Veri_1 = 0
            Else
                Veri_1 = Dizi(X - 2)
            End If
            
            If Cells(X, "F") = "" Then
                Veri_2 = 0
            Else
                Veri_2 = Cells(X, "F")
            End If
            
            Fark = Format((Veri_2 - Veri_1), "#,##0.00")
        
            If Fark < 0 Then
                Cells(X, "I") = Fark & "  Metre Sevk Olmuştur."
                Cells(X, "I").Interior.ColorIndex = 6
            ElseIf Fark > 0 Then
                Cells(X, "I") = Fark & "  Metre Üretim Olmuştur."
                Cells(X, "I").Interior.ColorIndex = 3
            Else
                If Cells(X, "I") = "" Then
                    Cells(X, "I").Interior.ColorIndex = xlNone
                End If
            End If
        
            If Cells(X, "F") = Cells(Satir, "G") Then
                Cells(X, "I") = "Üretim Tamamlanmıştır."
                Cells(X, "I").Interior.ColorIndex = 43
            End If
        
            If Cells(X, "F") < Cells(X, "G") Then
                Cells(X, "I") = Format(Cells(X, "G") - Cells(X, "F"), "#,##0.00") & " Metre Fazla Kumaş Vardır."
                Cells(X, "I").Interior.ColorIndex = 33
            End If
        Next
    End If
 
    Application.ScreenUpdating = True
End Sub
 
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Columns(2)) Is Nothing Then Exit Sub
    Application.Calculate
End Sub


Kodların sağlıklı çalışması için ayrıca dosyanızın açılış olayına hesaplama yöntemini manuele alan kodu uygulamanız daha sağlıklı sonuç almanızı sağlayacaktır.

BuÇalışmaKitabı bölümüne,

Kod:
Private Sub Workbook_Open()
    Application.Calculation = xlCalculationManual
End Sub
 
Merhaba Korhan Bey,
Günaydın hayırlı sabahlar, Konuyla ilgilendiğiniz için çok teşekkür ederim.
Kodları söylediğiniz şekilde uyguladım, B sütuna tip kodu girdiğimde, F ve G sütuna formüllerle gelen verilerde sayfa çıkıp girildiğinde geliyor, Onlar formüllerle geldiğinden dinamik olarak gelmesi gerekiyordu sanırım.
B sütuna tip kodu girdiğimde, çıkıp giriş yapıldığında, I sütun, F sütundaki rakamı –rakam sevk olmuştur. Böyle bir sorun var.
Şöyle anlatmak istiyorum.
B3:B 8170 08 0 tip kodu girdiğimde, F3:F ve G3:G formüllerle gelen rakamlar var, I3:I sütunu, F3:F sütuna formüllerle gelen ilk rakamı değersiz 0 gösterecek. Gelen ilk rakamdan sonra ne gibi değişiklikler olmuş onu takip etmek istiyorum.
Yukarıda verdiğim tip kodu yazıldığında STOK 39.519 I3:9 bunu 0 bilip, Stok 40.000 yükseldiğini varsayalım, bana 481 Metre Üretim Olmuştur. Yazmasını istiyorum.
Daha sonra STOK 42.000 olduğunu varsayalım, I3:I 2.481 Metre Üretim Olmuştur.
Stokun 42,000 olduğunu var sayalım bu rakam 41.000 oldu I3:I da 1.000 Sevk olmuştur. Kısaca Stokun arttığını ve bu artışlarda G3:G sütunda tarafıma ne kadar mal gelmesi gerektiğini takip etmek istiyorum. Konuya sizin bir yönteminiz varsa oda olabilir. Öğrenmek istediğim bu yani.
Her şey için sonsuz teşekkür eder, saygılarımı sunarım, İyi çalışmalar dilerim.


Saygılarımla.
 
Merhaba,

Dediğim gibi önceki değerlere ulaşabilmeniz için hesaplama manuel olmak durumundadır.

"ÇALIŞMA" isimli sayfanızda bir değer girdiğinizde verileri otomatik hesaplanması gerekiyorsa önceki önerdiğim kodlara ek olarak aşağıdaki koduda sayfanın kod bölümüne uygulayın.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Columns(2)) Is Nothing Then Exit Sub
    Application.Calculate
End Sub

Bu şekilde her değişiklikte sayfanızdaki formüller otomatik hesaplanacaktır.

Uyarı işlemi için yine sayfayı aktif etmeniz gerekecektir.

Not: Bu koduda #7 nolu mesajımdaki koda ilave ettim. Tekrar uygulamanıza gereke kalmadı.
 
Merhaba Korhan Bey, hayırlı akşamlar.
Yazdığınız kodları ancak deneyebildim lakin
ReDim Dizi(UBound(Veri)) bu satır hata verdi ve deneme yapamadım bir türlü af buyurun.
İyi çalışmalar dilerim.
 
Merhaba,

F sütununda veri yoksa hata vermesi gayet normaldir. Bu durumuda gözönüne alarak kodu güncelledim. Tekrar deneyin.
 
Merhaba Korhan Bey, günaydın hayırlı sabahlar,
Yazdığınız ilk ve üçüncü kodu çalışma sayfasına uyguluyorum. Yazdığınız ikinci kodu ise, BuÇalışmaKitabı bölümüne uyguluyorum kayıt ederek çıkıyorum. Yeniden açıyorum sayfalar arası geçiş yapıyorum yine aynı hatayı alıyorum. Bu durumda yine bir yerlerde bilmeden hatamı yapıyorum. Örnek olarak dosya ekliyorum. Bakabilirseniz sevinirim.
Hayırlı Cumalar dilerim.
Saygılarımla.
 

Ekli dosyalar

  • fark.rar
    fark.rar
    408.9 KB · Görüntüleme: 29
Merhaba,

#7 nolu mesajımdaki kodu tekrar güncelledim.

ÇALIŞMA isimli sayfanızdaki tüm eski kodu silip yeni önerdiklerimi deneyin.

Not: Bu tarz bir kontol sayfanızdaki satır sayısının artması ile yavaşlayacaktır. Buna dikkat etmeniz gerekiyor.
 
Merhaba Korhan Bey,
İlgi ve alakanıza çok teşekkür ederim. Deneyebildim bu kez.
Şu şekilde bir problemimiz var yalnız. F3:F Üretim olduğunda Sevk, Sevk olduğunda ise Üretim yazıyor. Ben Üretim ve Sevk notlarını yer değiştirdim. Üretim olduğunda +rakam olması gerekirken –rakam olarak gösteriyor. Üretim olduğunda +rakam değil de rakam olarak görünüyor bunu da + rakam olarak yapabilir miyiz?
Çok teşekkür ederim her şey için. Bu forumda iyi ki varsınız. Her şey gönlünüzce olması dileğiyle.
İyi çalışmalar dilerim.
 
Merhaba,

#7 nolu mesajımı tekrar güncelledim. Denermisiniz.
 
Merhaba Korhan Bey,
Çok teşekkür ederim çok sağ olun. Elinize bilginize sağlık, Mutlu günler dilerim.
 
Merhaba Korhan Bey,
Sizden bu kodların üzerine son olarak bir kaç özellik daha istirham ediyorum, lütfen yardımcı olur musunuz?
F3:F veri oldukça I3:I son durum her neyse kalıcı olabilir mi, çünkü sayfaya ikinci bir kez çık gir yaptığımda, I3:I veriler silinmiş oluyor. Yeniden değişiklik olduğunda aktif oluyor yine ikinci bir kez çık gir yapıldığında silinmiş oluyor. Sayfalar arası çok sık çık gir yapılıyor.
I3:I da hücresinde, üretim olduğunda, hücrenin rengi KIRMIZI, Sevk olduğunda SARI, F3:F ile G3:G eşitse, I3:I da hücre rengi YEŞİL olarak Üretim Tamamlanmıştır.
Bu sayede çalışmış olan siparişlerde sorunu çözdüğümüz gibi, çalışılacak yeni siparişlerde de daha çalışılmadan neyin ne olduğunu öğrenmiş olacağım.
Sizi yoruyorum, hakkınızı helal edin lütfen.

Saygılarımla.
 

Ekli dosyalar

  • fark.rar
    fark.rar
    409.4 KB · Görüntüleme: 15
Merhaba Korhan Bey,
Son yazdığınız kodlara, bir üst mesajdaki düzenlemeleri ekleye bilir miyiz.
Sizi eminim yoruyorum, af buyurun, bu sayede gerçekten olacak sorunların önlemlerini almış olacağım. Teşekkür ederim İyi çalışmalar dilerim.
 
Merhaba,

#7 nolu mesajımdaki koda son mesajınızda istediğiniz renklendirme olayınıda ekledim.

Eğer sayfaya çok sık giriliyorsa işleme başlamadan önce bir uyarı mesajı ile işlem isteğe bağlı devam ettirilebilir. Ben üstteki mesajımdaki kodu bu şekilde düzenledim. İsteğe bağlı evet ya da hayır diyerek işleme devam edebilirsiniz.
 
Merhaba Korhan Bey
Yazdığınız son kodu da inceledim, Evet ya da HAYIR seçeneği olmaması daha olumlu, I3:I sütunda son güncelleme durumu her neyse onun kalıcı olması benim için daha önemli olacaktı. Çalışma sayfasına ikinci girişimde güncellemeye evet dediğimde son durumu yine göremiyorum. Evet, hayır seçeneği olmayıp ta sayfada ki son güncelleme durumu her neyse I3:I sütunda, F3:F veri var ise durumu göstersin. Renklendirme istediğim gibi ama eksik, F3:F sütunu G3:G eşit olduğunda I3:I Üretim Tamamlanmıştır. Hücre rengi yeşil olarak olması gerekiyor. Bu şekilde düzenlememiz mümkün olabilir mi. He şey için çok teşekkür ederim. İyi çalışmalar dilerim. Saygılarımla.
 
Geri
Üst