• DİKKAT

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

J R den küçükse, K S den büyükse yada K boşsa F deki değeri P ye at

Katılım
27 Ekim 2012
Mesajlar
9
Excel Vers. ve Dili
2007
Merhabalar
5.000 e yakın çalışanı 100 küsür taşeronu olan bir şantiyede çalışıyorum. Aylık dönemsel raporlamalar hazırlıyorum ve bunu 100 küsür taşeronda süzerek yapıyordum. Çok zamanımı alıyor bu şekilde ve eğer yardımlarınızla becerebilirsem iş yükümü hafifletmiş olacağım. Sizlerede çok minnettar kalacağım. :dua:
Yapmak istediğim şey elle girmiş olduğum değeri eğer raporu hazırladığım tarihte işçi çalışmışsa F hücresindeki değeri P hücresine atmak.



J4 hücresindeki tarih (işe giriş tarihi) R3 hücresindeki tarihten küçükse,
K4 hücresindeki tarih (işten çıkış tarihi) S3 hücresindeki tarihten büyükse yada K4 hücresi (işten çıkış t.) boşsa
F4 hücresindeki veriyi P4 hücresine at, şartlara uymuyorsa "0" (sıfır) değeri at.

Örnek sadeleştirdiğim dosyam aşağıda indirebilirsiniz, resimdede görebilirsiniz.
 

Ekli dosyalar

Merhaba,

Soruyu tam olarak anladığım mı bilemiyorum. Aşağıdaki formülü dener misiniz?

P4

Kod:
=EĞER(VE(J4<$R$3;YADA(K4="";K4>$S$3));F4;0)
 
Size tek kelimeyle söyleyebileceğim şey, Harikasınız... :mutlu:
Bunu makro kodlarla yapabilme imkanımız olabilirmi

Makro ile de yapmak olası.
Makro ile 2 türlü olabilir.

1. Kullanıcı Tanımlı Fonksiyon
2. Doğrudan sayfa üzerinde hesaplayan makro kodları ile.


Sizin için hangisi uygun?

Bence fonksiyonu tercih ediniz. Satır ya da sütun eklendiğinde fonksiyonlar sorun oluşturmaz. Makroda ise sorun oluşturur ve kodlarda değişiklik gerekir.

Eğer makro konusunda yeterince bilginiz yoksa hiç bulaşmayınız bu aşamada derim.
 
Makro ile de yapmak olası.
Makro ile 2 türlü olabilir.

1. Kullanıcı Tanımlı Fonksiyon
2. Doğrudan sayfa üzerinde hesaplayan makro kodları ile.


Sizin için hangisi uygun?

Bence fonksiyonu tercih ediniz. Satır ya da sütun eklendiğinde fonksiyonlar sorun oluşturmaz. Makroda ise sorun oluşturur ve kodlarda değişiklik gerekir.

Eğer makro konusunda yeterince bilginiz yoksa hiç bulaşmayınız bu aşamada derim.


Şu konuda bilgi ve deneyimlerinizede danışarak yol alayım ozaman, örnekte vermiş olduğum şekilde 6 sutunda benzer işlevi yürütüp raporlama yapıyorum. ve üzerinde çalıştığım dosya veri bakımından oldukça kabarık, 100 küsür sheet,19bin küsür satır ve hergün veri girilen bir dosya
formüllerle işi götürmem dosyanın yükünü ne derece ağırlaştırır=? makro kodlarla ne derece ağırlaştırır..

Şuanda elimde K sutununda değer yoksa, F deki değeri, P ye at şeklinde bir makro var. Ama bunu ilk mesajımda anlattığım koşullara uyarlayabilirsem. satır yada sutun eklediğimde yapılabilecek değişiklikleri çözebilirim diye düşünüyorum


Kod:
Private Sub CommandButton1_Click()
son = Range("a65536").End(3).Row
For a = 4 To son
If Cells(a, "K") = "" Then Cells(a, "P") = Cells(a, "F")
Next a
End Sub
 
Merhaba,

Kodları dener misiniz?

Kod:
Private Sub CommandButton1_Click()
    
    Dim i   As Long
    
    Application.ScreenUpdating = False
    
    For i = 4 To Cells(Rows.Count, "A").End(3).Row
        If Cells(i, "J") < Range("R3") And _
           (Cells(i, "K") = "" Or Cells(i, "K") > Range("S3")) Then
           Cells(i, "P") = Cells(i, "F")
        Else
            Cells(i, "P") = 0
        End If
    Next i
    
    Application.ScreenUpdating = True
    MsgBox "İşlem Tamamlanmıştır....", vbInformation, "Excel.Web.Tr"
    
End Sub
 
Denedim sorunsuz... Son bir şey kaldı sanırım 100 sheetlik dosyada bu kodu tüm sheetlerimi yazmam gerekir. Farklı bir işlemle belirlediğim bir kaç sheet hariç diğerlerinde bu kodu bir seferde aktif ettirebilirmiyim
 
Denedim sorunsuz... Son bir şey kaldı sanırım 100 sheetlik dosyada bu kodu tüm sheetlerimi yazmam gerekir. Farklı bir işlemle belirlediğim bir kaç sheet hariç diğerlerinde bu kodu bir seferde aktif ettirebilirmiyim

Merhaba,

Kodlara küçük bir ek ile isteğiniz gerçekleşebilir. Sayfa adlarında istediğiniz değişiklikleri yapınız.

Kod:
Private Sub CommandButton1_Click()
    
    Dim i   As Long, _
        Sht As Worksheet
    
    Application.ScreenUpdating = False
    
    For Each Sht In Worksheets
        If Not Sht.Name = "Sayfa2" And Not Sht.Name = "Sayfa3" And Not Sht.Name = "Necdet" Then
            For i = 4 To Cells(Rows.Count, "A").End(3).Row
                If Cells(i, "J") < Range("R3") And _
                   (Cells(i, "K") = "" Or Cells(i, "K") > Range("S3")) Then
                   Cells(i, "P") = Cells(i, "F")
                Else
                    Cells(i, "P") = 0
                End If
            Next i
        End If
    Next Sht
    
    Application.ScreenUpdating = True
    MsgBox "İşlem Tamamlanmıştır....", vbInformation, "Excel.Web.Tr"
    
End Sub
 
Geri
Üst