Gençler,

Benim gibi Excel VBA'e gönül vermiş gençler bir fikir versin aşağıdaki konuyu siz olsanız nasıl çözerdiniz.

Vardiya yönetimi için bir excel dosyası hazırlıyorum. Linkteki resimdeki gibi bir userform var kafamda. En üstte mağazanın genel durumu, alttaki çerçeve içinde de çalışanların gün gün vardiyaları olacak diye düşündüm.

i.hizliresim.com

Eklediğim örnekte alt kısımda A harfi yerine çalışanlar gelecek. Bu örnek 7 çalışana kadar yapılmış durumda ancak 8. çalışan olursa dosyayı revize etmek gerekecek. Çalışan sayısını algılayıp ona göre gizle / göster yapabilirim ancak ileride 20 çalışana ulaşacak diye şimdiden 20şer satır için kodlama yapmayı gereksiz gördüm.

Öte yandan yukarıya çalışan veya gün filtresi de koyamıyorum. Programı kullanacak kişinin ekteki şekilde bir görünüme ihtiyacı var.

İşin bir kolayı var mıdır benim bilmediğim, onu sormak istedim.

Yanıtlarınız için şimdiden teşekkür ederim.

 

Cakabo selam,

Ben olsam ilk olarak VBA değil, access veritabanı kullanan bir VB formu yazardım. Hem birden fazla kullanıcı aynı anda veri girişi yapabiliyor (çok gerekli mi bilmiyorum) hem de veritabanı kodlamadan bağımsız bir yerde durduğu için veri güvenliği açısından daha iyi.

Kodlama bölümüne gelirsek;

- Öncelikle A'lar yerine gelecek kullanıcılar için bir tablo olmalı. Atıyorum sayfa1. Bu sayfada yer alan kullanıcı sayısı 'boş hüceyi bulana kadar çalışan döngü' ile tespit edilebilir. Örn:

for i=1 to 2000
sayac = sayac + 1
if cells(i,1) = "" then
break
end if
next i // kodlar tam doğru olmayabilir kafadan yazdım.

Daha sonra bu userform'u kullanıcı saysına göre (yani sayac değişkeni içindeki sayıya göre) dizayn edecek bir kodlama lazım.

Ayrıca herbir günün tek formda görünmesi gerekmiyorsa tarih bazlı bir sayfa yapardım.

Yani örneğin formu açtık. Bugünün ya da en son veri girişi yapılan günün tablosunu gösterecek. Sağa - sola oklar ile günler arasında gezilebilecek. Bu formda yer alacak bilgiler de bir tabloda tutulacak (mesela sayfa2) bu tablo 2 referansa bağlı olacak. 1. çalışan, 2. tarih.

bu iki referansı kullanan bir çoklu değişken kullanılmalı degisken[i] tarzında yani. her bir indis ise yarımşar saatlik dilimi simgelemeli. örneğin degisken[6] saat 10:30'u simgeleyecek. veri girişi de degisken[i]'e indis artırılarak girilecek.

umarım kafamdaki modeli anlatabilmişimdir.

himmet dayi
1

mobil görünümden çık