Soru Sayfadan sayfaya makro ile veri aktarımı

zcn43

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhabalar. Ekte bulunan puantaj defterimde LİSTE_PUANTAJI_BURAYA_YAPIŞTIR sayfasındaki izin verilerini ANASAYFA içinde bulunan PUANTAJI AKTAR butonuyla puantaj defterine aktarıyorum. Daha önce Çözüldü - Sayfadan sayfaya veri aktarımında önceki hücre içeriğinin değişmesi/sabit kalması adlı konu açmıştım. Bu konuda, puantaj aktarıldığında daha önceden deftere yazılmış olan "T" (hafta tatili) harflerinin, atılan iznin türüne göre değişip değişmemesi konusunda yardım istemiştim Sayın Ömer hocam sorunumu çözmüştü. Ekteki örnek 2 de puantajın atılmış halinde 2. ve 3. sıra no' lu personele işlenen "R" (rapor) ve "H" (heyet) harfleri kodda yazıldığı gibi aralardaki "T" harfini değiştirerek işliyor, burda sorun yok. 16. sıra nolu personele işelenen "Y" (yıllık izin) harfi aralardaki "T" harfini atlayarak işliyor burda da sorun yok. Ama 4. sıradaki personele işlenen "Y" harfinin (yıllık izinlerin) aralarında kalan "T" harfinin değişmemesi gerekirken "H" harfine dönüşüyor. Yani ondan önceki sırada "T" harfini kaldıran bir izin işlendiyse o iznin harfine dönüşüyor. Bunun nedeni kendinden önceki satırda "T" harfini kaldıran bir izin atılması ve aktarılancak izinlerin olduğu LİSTE_PUANTAJI_BURAYA_YAPIŞTIR sayfasında yıllık izinlerde hafta tatiline ("T") denk gelen günlerin de yıllık izinli olarak yazılı olması. Ama bu hafta tatiline denk gelen günlerin yıllık izin olarak yazılı olması 16 sıra no da sorun olmuyor. Kısaca 4 nolu personele atılan Yıllık iznin aralarında kalan "T" harflerinin 16. sıradaki gibi değişmemesini istiyorum. Biraz uzun oldu kusura bakmayın, detaylıca anlatmaya çalıştım. Aylardır bu şekilde kullanıyorum karışık bir problem olduğu için sormamıştım. Teşekkürler.
 

Ekli dosyalar

  • 1653393889865.webp
    1653393889865.webp
    8.1 KB · Görüntüleme: 6
Dosyayı ve kodları pek hatırlamıyorum doğrusu.

Peki sizce bunun ne olabilir?
Bu iki kişi bilgileri arasında bir fark olmalı ki farklı sonuç alınıyor değil mi?
 
Dosyayı ve kodları pek hatırlamıyorum doğrusu.

Peki sizce bunun ne olabilir?
Bu iki kişi bilgileri arasında bir fark olmalı ki farklı sonuç alınıyor değil mi?
Merhaba Ömer hocam. Yıllık izinli olan iki kişi arasında bir fark yok. Eğer sadece bu iki kişinin yıllık iznini aynı verilerle aktarırsam iki kişide de sorun yok. Ama bu yıllık izinleri "H", "R" gibi "T" harflerini değiştiren izinlerle beraber aktardığımda, yıllık izinli kişinin hafta tatillerine denk gelen günleri de yıllık izinli olarak aktarırsam "H" gibi izinli kişilerin altındaki ilk "Y" izinli kişide bu problem oluyor. "T" harflerini atlamıyor, değiştirerek bir üstündeki kişiye atılan "T" değiştiren iznin harfine dönüştürüyor ve bu sorun sadece ilk yıllık izinli kişide oluyor ondan sonraki yıllık izinde sorun olmuyor. Ta ki bir sonraki döngüye kadar. Anlatması zor bir sorun çözümü var mı bilmiyorum. Yoksa da yine bir paylaşayım dedim teşekkürler.

kırmızı renki izin türleri aktarıldığında "T" harfleri, aktarılan iznin harfine,
yeşil renkli izin türleri aktarıldığında "T" harflerinin değişmemesi için yazılan kod.
ElseIf veri(sat, 3) = "İşçi Raporlu-Ücretsiz" Then: XD = "R"
ElseIf veri(sat, 3) = "İşçi Raporlu-Ücretli-2Gün" Then: XD = "R.üc"
ElseIf veri(sat, 3) = "İdari İzin" Then: XD = "ID"
ElseIf veri(sat, 3) = "Ücretsiz İzin" Then: XD = "İZ"
ElseIf veri(sat, 3) = "Heyet Raporu-Yatarak-Üli" Then: XD = "H.Yt"
ElseIf veri(sat, 3) = "Heyet Raporu-Ücretli" Then: XD = "H"
ElseIf veri(sat, 3) = "Refakat İzni(15 Gün)" Then: XD = "RF"
ElseIf veri(sat, 3) = "Ölüm İzni" Then: XD = "Ö"
ElseIf veri(sat, 3) = "Evlenme İzni" Then: XD = "Eİ"
ElseIf veri(sat, 3) = "Doğum Sonrası Ücretli İzn" Then: XD = "D"
ElseIf veri(sat, 3) = "İş Kazası/Meslek Hastalı." Then: XD = "K"
ElseIf Not eski(sicil, 1) = "T" And Not veri(sat, 3) = Empty Then
Select Case veri(sat, 3)
Case "Yıllık İzin": XD = "Y"
Case "Vizite-Ücretli İzin Günü": XD = "S"
Case "Sendika (Mazeret) İzni": XD = "MZ"
Case "4SA": XD = "4SA"
Case "8SA": XD = "8SA"
Case "Sendika Yönetim Kurulu İz": XD = "SN"
Case "Şehirdışı Görev İzni": XD = "G"
End Select
End If

If Not eski(sicil, 1) = "T" Or XD = "R" Or XD = "R.üc" Or XD = "ID" Or XD = "İZ" Or XD = "H.Yt" Or XD = "H" Or XD = "RF" Or XD = "Ö" Or XD = "Eİ" Or XD = "D" Or XD = "K" Then eski(sicil, 1) = XD
End If
 
Değiştirme/değiştirmeme koşullarını net ifade eder misiniz?
Belge sizin olduğu için sizin için nettir ancak, mevcut kodlamayı benim yapmış olmam
tüm detayları hatırlayacağım anlamına gelmiyor.

-- Diyelim alanda hiç T yok, mevcut kod istenileni yapıyor mu?
-- T olan alanlar hangi seçeneklerde mutlaka değiştirilmeli?
-- T olan alanlar hangi seçeneklerdi atlanıp, değiştirilmeden devam edilmeli?
-- Veri kaynağı olan listedeki giriş/çıkış saatlerinin olayla ilgisi/bağlantısı, yukarıdaki işlemlere etkisi var mıdır? Varsa nedir?

Yukarıdaki hususları, tane tane ve yukarıdaki sorularım gibi tasnifli olarak maddeler halinde yazarsanız uygun vakit bakmaya çalışırım.
 
Konuyu başlatan
Normal Üye
Katılım
Konu Bilgi
Durum
Soru 
Forum
Excel Makro Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
5
Üst