[Yardım]  Fazla Mesailerin Rastgele Seçilen Günlere Kopyalanması

VBA Makrolar ile ilgili sormak istedikleriniz, yapmak istedikleriniz hakkında yardım alabileceğiniz bölümdür.

Fazla Mesailerin Rastgele Seçilen Günlere Kopyalanması

İleti#1)  seven58 » 07 Kas 2020 12:52

Herkese Merhabalar,

Ekte örnek dosyada görüldüğü üzere 2 tablom var bu tablolardan birincisinde çalışanların fazla mesai saatlerinin kaç güne dağıtılacağı yer almaktadır. Bu tabloda yazan mesai saatlerinin dağıtılacak gün sayısına göre 2. tabloya kopyalanması gerekmektedir. Forumlarda uzun süredir araştırıyorum ancak tam olarak ihtiyacımı karşılayacak bir örnek bulamadım. Bu konuda yardımcı olabilirseniz çok sevinirim.

Not: Ekte tam olarak ne yapmak istediğimi açıklayan bir de görsel ekledim.

Şimdiden yardımcı olabileceklere teşekkür eder, iyi günler dilerim.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
seven58
 
Adı Soyadı:Mahmut Seven
Kayıt: 19 Haz 2010 08:15
İleti: 4
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul / Esenyurt

Cevap: Fazla Mesailerin Rastgele Seçilen Günlere Kopyalanmas

İleti#2)  Ömer BARAN » 07 Kas 2020 16:51

Merhaba.

Sayfaya ekeyeceğiniz bir düğmeyle aşağıdaki kodu ilişkilendirerek kullanabilirsiniz.

Kod: Tümünü seç
Sub MESAI_DAGIT()
Range("J3:J" & Rows.Count).ClearContents
For XD = 3 To Cells(Rows.Count, 1).End(3).Row
    tc = Cells(XD, 1): XDadet = Cells(XD, 3)
    ilk = WorksheetFunction.Match(tc, [G:G], 0)
    If WorksheetFunction.CountIf([G:G], tc) = 0 Then GoTo 20
    If WorksheetFunction.CountIf([G:G], tc) < XDadet Then _
        XDadet = WorksheetFunction.CountIf([G:G], tc)
    For gXD = 1 To XDadet
10:     Randomize: XDkrt = Int(Rnd() * (WorksheetFunction.CountIf([G:G], tc)))
        If Cells(ilk + XDkrt, "J") <> "" Then GoTo 10
        Cells(ilk + XDkrt, "J") = Cells(XD, 4)
        Cells(ilk + XDkrt, "J").NumberFormat = Cells(XD, 4).NumberFormat
    Next
20: Next
MsgBox "İşlem tamamlandı.." & vbLf & "Www.ExcelDestek.Com", vbInformation, "::.. Ömer BARAN ..::"
End Sub

.
☾✭ İnadına TÜRKÇE ✭☽

Sorularınızı bana https://www.ExcelDestek.Com 'dan da sorabilirsiniz.




.
Kullanıcı avatarı
Ömer BARAN
Siteye Alışmış
 
Adı Soyadı:ÖMER BARAN
Kayıt: 29 Oca 2013 16:17
Konum: ANKARA
Meslek: EMEKLİ
Yaş: 56
İleti: 250
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ANKARA / ÇANKAYA

Cevap: Fazla Mesailerin Rastgele Seçilen Günlere Kopyalanmas

İleti#3)  seven58 » 07 Kas 2020 17:32

Ömer Bey, Tam istediğim gibi olmuş. Yardımınız için çok teşekkür ederim.
Kullanıcı avatarı
seven58
 
Adı Soyadı:Mahmut Seven
Kayıt: 19 Haz 2010 08:15
İleti: 4
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul / Esenyurt

Cevap: Fazla Mesailerin Rastgele Seçilen Günlere Kopyalanmas

İleti#4)  seven58 » 09 Kas 2020 13:32

Merhabalar,

Mesai saatlerini rastgele değil de sadece "Gündüz" yazan sütunlara yine dağıtılacak gün sayısına göre nasıl dağıtabilirim? Bu konuda yardımcı olabilir misiniz?

İyi günler dilerim
Kullanıcı avatarı
seven58
 
Adı Soyadı:Mahmut Seven
Kayıt: 19 Haz 2010 08:15
İleti: 4
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul / Esenyurt

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Cevap: Fazla Mesailerin Rastgele Seçilen Günlere Kopy

İleti#5)  seven58 » 09 Kas 2020 13:33

seven58 yazdı:Merhabalar,

Mesai saatlerini rastgele değil de sadece "Gündüz" yazan sütunlara yine dağıtılacak gün sayısına göre nasıl dağıtabilirim? Bu konuda yardımcı olabilir misiniz?

İyi günler dilerim


Örnek doysa ektedir.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
seven58
 
Adı Soyadı:Mahmut Seven
Kayıt: 19 Haz 2010 08:15
İleti: 4
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul / Esenyurt

Cevap: Fazla Mesailerin Rastgele Seçilen Günlere Kopyalanmas

İleti#6)  Ömer BARAN » 22 Kas 2020 01:23

Tekrar merhaba.

Son sorunuz biraz garip geldi (Gündüz kelimesini yazmak yerine doğrudan saati yazabilirdiniz).
Ama "vardır bir bildiğiniz diye düşünerek kod cevabını vereyim.
G sütununun sıralı olduğu (aynı TC Kimlik numaraları art arda sıralanmış) varsayıldı.

Aşağıdaki kod, C sütunundaki sayı, ilgili kişinin G sütunundaki TC adeti, ve J sütunundaki kişiye ait kısımdaki "Gündüz" adetinden
en küçüğü hangisiyse o adette olmak üzere; J sütununda "Gündüz" yazılı hücreler içinden rastgele hücreye ilgili saati yazar.

Kod: Tümünü seç
Sub MESAI_DAGIT_GUNDUZ()
For XD = 3 To Cells(Rows.Count, 1).End(3).Row
    tc = Cells(XD, 1): XDadet = Cells(XD, 3)
    ilk = WorksheetFunction.Match(tc, [G:G], 0)
    adet = WorksheetFunction.CountIf([G:G], tc)
    Gadet = WorksheetFunction.CountIf(Range("J" & ilk & ":J" & ilk + adet - 1), "Gündüz")
    If WorksheetFunction.CountIf([G:G], tc) = 0 Then GoTo 20
    adetJ = WorksheetFunction.Min(XDadet, adet, Gadet)
    For gXD = 1 To adetJ
10:     Randomize: XDkrt = Int(Rnd() * (adet))
        If Cells(ilk + XDkrt, "J") <> "Gündüz" Then GoTo 10
        Cells(ilk + XDkrt, "J") = Cells(XD, 4)
        Cells(ilk + XDkrt, "J").NumberFormat = Cells(XD, 4).NumberFormat
    Next
20: Next: MsgBox "İşlem tamamlandı ..", vbInformation, "::.. Ömer BARAN ..::"
End Sub

.
☾✭ İnadına TÜRKÇE ✭☽

Sorularınızı bana https://www.ExcelDestek.Com 'dan da sorabilirsiniz.




.
Kullanıcı avatarı
Ömer BARAN
Siteye Alışmış
 
Adı Soyadı:ÖMER BARAN
Kayıt: 29 Oca 2013 16:17
Konum: ANKARA
Meslek: EMEKLİ
Yaş: 56
İleti: 250
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ANKARA / ÇANKAYA

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Forum Genel Makro Soruları

Online Kullanıcılar

Bu forumu görüntüleyenler: Google [Bot] ve 1 misafir

Bumerang - Yazarkafe