• DİKKAT

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

Aynı veriyi aktarmayı engelleme

mcetinkaya65

Altın Üye
Katılım
1 Mart 2011
Mesajlar
490
Excel Vers. ve Dili
2021 türkçe
Değerli hocalarım,
Aşagıda verdiğim kodlarla verileri izin sayfasına eklediğim aktar butonuyla,izin izlenimi sayfasına aktarıyorum.Unutarak aktar butonuna 2 veya daha fazla tıklarsak aynı kişiye aynı tarihten başlayan 1 den çok izin vermiş oluyoruz,buda sorun oluyor.
İzin izleniminin A stununa İsimler, C stununa verilen iznin başlangıç tarihi aktarılıyor.İstediğim A stununda yazan isme,C stununda aynı tarihten başlayan izni hatayla aktarırsak uyarı vermesi.( Ali veli izinlidir gibi)
Aşagıdaki makroda nasıl bir değişiklik yapmalıyız.
Saygılarımla..

Sub Düğme69_Tıklat()
Set s = Sheets("izin izlenimi")
sat = s.[b65536].End(3).Row + 1
s.Cells(sat, "a") = [d28]
s.Cells(sat, "b") = [a8]
s.Cells(sat, "c") = Format([k28], "dd.mm.yyyy")
s.Cells(sat, "d") = Format([n28], "dd.mm.yyyy")
s.Cells(sat, "e") = [E6]
s.Cells(sat, "f") = Format([j33], "dd.mm.yyyy")
s.Cells(sat, "g") = [n33]
s.Cells(sat, "h") = [b35]
s.Cells(sat, "ı") = [h36]
s.Cells(sat, "j") = [E7]
s.Cells(sat, "k") = [E8]
s.Cells(sat, "l") = [E9]
s.Cells(sat, "m") = [e10]
s.Cells(sat, "n") = [b37]
s.Cells(sat, "o") = Format([n26], "dd.mm.yyyy")
MsgBox "İşlendi"
Sheets("izin").Select
End Sub
 
Merhaba,

"Set" ile başlayan satırın altına aşağıdaki sorguyu ekleyip deneyin.

Kod:
    Say = Evaluate("=SUMPRODUCT(('izin izlenimi'!A1:A1000=D28)*('izin izlenimi'!C1:C1000=K28))")
    If Say > 0 Then
        MsgBox Range("D28") & " isimli kişi izinlidir."
        Exit Sub
    End If
 
Sayın hocam,
Emeğinizden dolayı teşekkürler.Fakat ben mi hata yaptım, proğramda bulunan diğer makrolar mı engelliyor bilemiyorum istenilen sonucu vermedi.Direkmen aktarıyor 2. ve daha fazla aktarımlarda uyarı çıkmıyor.
Saygılarımla.
 

Ekli dosyalar

Son düzenleme:
Merhaba,

Tarih olarak görünen hücreler "Metin" biçiminde olduğu için kod çalışmıyor. Tarihleri aktarırken "Cdate" komutunu kullanabilirsiniz.

Aşağıdaki kodu deneyin.

Kod:
Sub Düğme69_Tıklat()
    Set s = Sheets("izin izlenimi")
    
    Say = Evaluate("=SUMPRODUCT(('izin izlenimi'!A1:A1000=D28)*('izin izlenimi'!C1:C1000=K28))")
    
    If Say > 0 Then
        MsgBox Range("D28") & " isimli kişi izinlidir.", vbCritical
        Exit Sub
    End If
    
    sat = s.[b65536].End(3).Row + 1
    s.Cells(sat, "a") = [d28]
    s.Cells(sat, "b") = [a8]
    s.Cells(sat, "c") = CDate([k28])
    s.Cells(sat, "d") = CDate([n28])
    s.Cells(sat, "e") = [E6]
    s.Cells(sat, "f") = CDate([j33])
    s.Cells(sat, "g") = [n33]
    s.Cells(sat, "h") = [b35]
    s.Cells(sat, "ı") = [h36]
    s.Cells(sat, "j") = [E7]
    s.Cells(sat, "k") = [E8]
    s.Cells(sat, "l") = [E9]
    s.Cells(sat, "m") = [e10]
    s.Cells(sat, "n") = [b37]
    s.Cells(sat, "o") = CDate([n26])

    MsgBox "İşlendi"
    Sheets("izin").Select
End Sub
 
Çok teşekkür ederim.Allah razı olsun.
Saygılarımla..
 
Geri
Üst