VBA ile Ekip listesi oluşturma

msdemr

Altın Üye
Katılım
24 Ekim 2022
Mesajlar
18
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
23-11-2024
Merhaba,

Elimde ekip1 ve ekip2 olmak üzere 2 farklı sheette tablolar var. tablolarda ilk satırda gün, A sütununda çalışan isimleri var. geriye kalan kesişim hücrelerinde ise çalışan o gün müsaitse "AVBL" yazmakta. son sütunda (AG) ise "toplam çalışma saatleri yer almakta.

Ben "ekip1" sheetindeki tablodaki çalışanları "ekip1 sıralı liste" sheetine ilgili günlerde müsait olan çalışanları toplam çalışma saatlerine göre azdan çoğa olacak şekilde,
"ekip2" sheetindeki tablodaki çalışanları "ekip2 sıralı liste" sheetine ilgili günlerde müsait olan çalışanları toplam çalışma saatlerine göre azdan çoğa olacak şekilde tablo halinde getirmek istiyorum. Bunu bir vba kodu ile yapmak mümkün mü? İlgili dosyayı ekliyorum.

Şimdiden yardımınız için teşekkürler.
 

Ekli dosyalar

msdemr

Altın Üye
Katılım
24 Ekim 2022
Mesajlar
18
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
23-11-2024
Merhaba;
Doğru anladıysam eki deneyin.
İyi çalışmalar.
Merhaba,
öncelikle ilgilendiğiniz için teşekkürler. Kodu çalıştırmaya çalıştığımda aşağıdaki hatayı aldım.249603

Kodu incelediğimde "i" harfiyle alakalı bi hata olabilir mi onu düşündüm. tüm "y" karakterleri "i"ye çevirdiğimde çalıştı. fakat her hangi bir aksiyon olmadı tabloda.
249605

diğer bir konu ise sanırım ben anlatamamışım istediğimi. Koda biraz baktım ama ekip1 ve ekip2 tablosunda "AVBL" yazan kişilerin ismini çalışma saatine göre sıralamak istiyorum ben. kod içerisinde buna dair bir şey göremedim. ben anlayamamış da olabilirim.
Sonuç olarak macro istediğimi sağlamıyor şuan sizde listeliyormuydu bilmiyorum ama bende yapmıyor.

istediğim tablonun ekip1 ve ekip2 için ilk 3'er günü aşağıda yer almakta.

249606
 

BaY_KaPTaN

Kürşat
Altın Üye
Katılım
4 Mart 2008
Mesajlar
85
Excel Vers. ve Dili
Office 2007 Türkçe
Altın Üyelik Bitiş Tarihi
04-10-2028
Merhaba,
öncelikle ilgilendiğiniz için teşekkürler. Kodu çalıştırmaya çalıştığımda aşağıdaki hatayı aldım.Ekli dosyayı görüntüle 249603

Kodu incelediğimde "i" harfiyle alakalı bi hata olabilir mi onu düşündüm. tüm "y" karakterleri "i"ye çevirdiğimde çalıştı. fakat her hangi bir aksiyon olmadı tabloda.
Ekli dosyayı görüntüle 249605

diğer bir konu ise sanırım ben anlatamamışım istediğimi. Koda biraz baktım ama ekip1 ve ekip2 tablosunda "AVBL" yazan kişilerin ismini çalışma saatine göre sıralamak istiyorum ben. kod içerisinde buna dair bir şey göremedim. ben anlayamamış da olabilirim.
Sonuç olarak macro istediğimi sağlamıyor şuan sizde listeliyormuydu bilmiyorum ama bende yapmıyor.

istediğim tablonun ekip1 ve ekip2 için ilk 3'er günü aşağıda yer almakta.

Ekli dosyayı görüntüle 249606
Merhaba.
ai olarak değil de aı olarak deneyin.
Ben dosyayı indirdim, kodlarda aı olarak gördüm.
 

msdemr

Altın Üye
Katılım
24 Ekim 2022
Mesajlar
18
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
23-11-2024
Merhaba.
ai olarak değil de aı olarak deneyin.
Ben dosyayı indirdim, kodlarda aı olarak gördüm.
Çalışıyor yani hata vermiyor. ama "ekip1 sıralı liste" ve "ekip2 sıralı liste" tablolarında bir değişiklik olmuyor.
 

BaY_KaPTaN

Kürşat
Altın Üye
Katılım
4 Mart 2008
Mesajlar
85
Excel Vers. ve Dili
Office 2007 Türkçe
Altın Üyelik Bitiş Tarihi
04-10-2028
Çalışıyor yani hata vermiyor. ama "ekip1 sıralı liste" ve "ekip2 sıralı liste" tablolarında bir değişiklik olmuyor.
@muygun 'in paylaştığı dosyayı aynen indirip butona bastım çalışıyor.

Eğer listelerde, sayfa isminde değişiklik yaptıysanız eğer çalışmayabilir.

Yeniden indirip kontrol edin değişiklik yapmadan.

Bende grünen ekran görüntüsü;
249607
 
Son düzenleme:

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,171
Excel Vers. ve Dili
Excel-2003 Türkçe
365 uyumsuzluğu olabilir.
(Ofis 365 kullanmadığım için test edemiyorum)
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,642
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub test()
    Dim myVal, myVal2, liste, rng, i, ii, sat, sH, sh2(), s
    sh2 = Array("ekip1 sıralı liste", "ekip2 sıralı liste")
    s = 0
    For Each sH In Array(Sheets("ekip1"), Sheets("ekip2"))
        Set rng = sH.Range("A1:AG" & sH.Cells(Rows.Count, 1).End(3).Row)
        myVal2 = rng.Value
        rng.Sort key1:=sH.Range("AG1"), Header:=xlYes
        myVal = rng.Value
        rng.Value = myVal2
        ReDim liste(1 To UBound(myVal), 1 To 31)
        For i = 1 To 31
            sat = 1
            For ii = 1 To UBound(myVal)
                If myVal(ii, i + 1) = "AVBL" Then
                    liste(sat, i) = myVal(ii, 1)
                    sat = sat + 1
                End If
            Next ii
        Next i
        With Sheets(sh2(s))
            .Range("2:" & Rows.Count).ClearContents
            .Range("A2").Resize(UBound(liste), 31).Value = liste
        End With
        s = s + 1
    Next sH
End Sub
 
Son düzenleme:
Üst