• DİKKAT

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

Personel Takıp Islemi

Katılım
25 Mayıs 2017
Mesajlar
15
Excel Vers. ve Dili
Office 365
Merhaba,

Personel takibi için ekteki gibi bir dosyam mevcut.
Istediğim şey sheet1 deki verileri sheet2 de yer alan yerlerine kısa yoldan yerleştirebilmek.

Yardımcı olabilirseniz çok sevinirim.

Teşekkürler.
 

Ekli dosyalar

Merhaba,

1.Sheet2 de her personel tek bir satırda mı?
2. Aktarım yaptıktan sonra Sheet1 deki veriler silinecek mi?
3. Statuslerde sadece abnormal olanlar mı aktarılacak? çünkü onları renklendirmişsiniz.

Bu sorulara yanıt verin, yardımcı olacak arkadaşlar kesin olur.
 
Merhaba,

1.Sheet2 de her personel tek bir satırda mı?
2. Aktarım yaptıktan sonra Sheet1 deki veriler silinecek mi?
3. Statuslerde sadece abnormal olanlar mı aktarılacak? çünkü onları renklendirmişsiniz.

Bu sorulara yanıt verin, yardımcı olacak arkadaşlar kesin olur.

Merhaba,

1- Sheet2 de her personel tek bir satirda olacak.
2- aktarim yaptiktan sonra veriler silinmeyecek.
3- her ikisi de olacak.

Tesekkurler.
 
bunun formülünü merak ediyorum ilk aklıma gelen = yapıp sayfa 1 deki ilgili satırı seçme şeklinde ama uğraştırır
 
bunun formülünü merak ediyorum ilk aklıma gelen = yapıp sayfa 1 deki ilgili satırı seçme şeklinde ama uğraştırır

Evet o sekilde bayagi bir ugrastirir bir de sheet1 de ayni kisiye ait birden fazla veri oldugu icin ilgili veriyi yerine uygun sekilde koyacak bir formul yazilmasi gerekli.

Sheet1 deki isim ve id kismina pivot cekerek isim ve id leri suzebilirim ve elle sheet2 ye ekleyebilirim fakat bundan sonrasi icin uygun bir algoritma kafamda canlandiramiyorum. Bakalim nasil sonuclar cikacak.
 
Merhaba,

Aşağıdaki kodları bir modüle kopyalayıp deneyiniz.

Aktarılan kayıtlar Sheet1 de I sütununa x konuyor. İkinci, Üçünkü aktarımlarda bu satırlar aktarılmaz.

Sil değişkeni True olduğunda Sheet1 deki veriler silinir, aksi takdirde silinmez.

Kod:
Sub Aktar()

    Dim S1  As Worksheet, _
        S2  As Worksheet, _
        c   As Range, _
        d   As Range, _
        i   As Long, _
        Tar As Date, _
        Kol As Integer, _
        Sat As Long, _
        Sil As Boolean
    
    Sil = False     'Aktarım yapıldıktan sonra Sheet1'deki
                    'verilerin Silinmesini İstiyorsanız Değeri TRUE Yapın
    
    Set S1 = Sheets("Sheet1")
    Set S2 = Sheets("Sheet2")
    
    For i = 2 To S1.Cells(Rows.Count, "A").End(3).Row
        If S1.Cells(i, "I") = "" Then
            Tar = DateSerial(Left(S1.Cells(i, "C"), 4), Mid(S1.Cells(i, "C"), 6, 2), Right(S1.Cells(i, "C"), 2))
            Kol = 0
            Set c = S2.Range("1:1").Find(Tar, LookIn:=xlValues)
            If Not c Is Nothing Then
                Kol = c.Column
            Else
                MsgBox "Sheet2 de " & Tar & " Tarihi bulamadım"
            End If
            
            Set c = Nothing
            
            If Not Kol = 0 Then
                Set d = S2.Range("A:A").Find(S1.Cells(i, "A"), LookAt:=xlWhole)
                If Not d Is Nothing Then
                    Sat = d.Row
                Else
                    Sat = S2.Cells(Rows.Count, "A").End(3).Row + 1
                    S2.Cells(Sat, "A") = S1.Cells(i, "A")
                    S2.Cells(Sat, "B") = S1.Cells(i, "B")
                End If
                
                S2.Cells(Sat, Kol) = S1.Cells(i, "E")
                S2.Cells(Sat, Kol + 1) = S1.Cells(i, "G")
                S1.Cells(i, "I") = "X"
            
                Set d = Nothing
            Else
                S1.Cells(i, "I") = "Tarih Hatası"
            End If
        End If
        
    Next i
    
    If Sil = True Then
        Sat = S1.Cells(Rows.Count, "A").End(3).Row
        If Sat < 2 Then Sat = 2
        S1.Range("A2:I" & Sat).ClearContents
    End If
    
    MsgBox "Aktarım Tamamlanmıştır....", vbInformation, "www.excel.web.tr'den Necdet"
    
End Sub
 
Durum nedir? oldu muuu olmadı mı?
 
Necdet hocam , uzunca bir sure giris yapamadim foruma. Bugun denedim ve oldu, cok tesekkur ediyorum desteginiz icin.

Uzerine ben de birseyler katmaya calisacagim.
 
Merhaba, konuyla ilgili ufak bir sorum daha olacak.
Sheet1 deki verileri cekerken `check-in date` yazili kisim yazi formatinda , baska bir tabloya entegre etmeye calistigimda type mismatch hatasi aliyorum.
Yeni tablomdaki `check-in date` kismi tarih formatinda secili , makroda ne tur bir degisiklik yapmam gerekli ?

Tesekkurler.
 
Merhaba,

Hiç bir şey anlamadım. Başka bir tabloya entegre ederken nasıl olması gerekiyor? Yeterli açıklama yok.
 
Merhaba,
Eklediğim Excel tablosu uzerinden gidersem eger , check in date sütununun formati text degil de date olarak secili.
Test 2 Excelinde check in sutununa tarih formatinda ekleme yaptim gormeniz icin.
 

Ekli dosyalar

Son düzenleme:
Ben hâlââ bir şey anlamadım.
 
Ekledigim Test 2 excelinde yazdıgınız makroyu deneyebılırsenız sanırım anlayacaksınız :)
Aldigim hatanin ekran goruntusunu de paylasiyorum.
 

Ekli dosyalar

  • Ekran Alıntısı.PNG
    Ekran Alıntısı.PNG
    36.7 KB · Görüntüleme: 14
Merhaba, Sorunu cozdum. C sutununda ki verileri text ile yyyy-aa-gg sekline cevirdigimde sorun duzeldi.
 
Herkese tekrar selamlar,

Tabloya yeni bir sheet daha ekledim(Sheet3). Istedigim ayni makroyu Sheet 3 de de kullanabilmek.

Fakat sheet3 de izin araliklarini girdim ve istedigim personelin hangi tarih araliginda izinli oldugunu gorerek Sheet2 ye yazmasi.

Ornegin 2 numarali personel 6. ayin 1-4 arasinda izinli. Sheet2 de bu tarih araligini bularak her bir tarihin altinda ki in-out bolumlerine Annual Leave yazdirmak istiyorum.

Yardimlariniz icin simdiden tesekkurler :)
 

Ekli dosyalar

Geri
Üst