Y

Çözüldü Vba kod revize : ( 8 - 12 ve 24 Saat Nöbet - Vardiya Dağılımı )

  • Konuyu başlatan Konuyu başlatan ycicek
  • Başlangıç tarihi Başlangıç tarihi

ycicek

Site Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
@Ömer BARAN üstadım merhaba,

vardiya-nöbet programımız vardiya sayfamıza 3 adet OptionButton ekleyerek;

OptionButton1 ( 8 saat ) mevcut sistemi yani 6 gün 8 saat çalışma 1 gün hafta taili ile çalışma sistemini

OptionButton2 ( 12 saat çalışma yani 12-24 çalışma modeli ) ile çalışma döngüsü ( ilk gün 08-20 ikinci gün 20-08 üçüncü gün X yani çalışma yok )
"Kaynak" sayfası E6:E9 arası vardiya döngüsü E6= 08-20 E7= 20-08 E8= İZ E9= X

OptionButton3 ( 24 saat çalışma yani 24-48 çalışma modeli ) ile çalışma döngüsü ( ilk gün 20:00 işe gider ertesi akşam 20:00 işten çıkar sonraki 48 saat XX yani çalışma yok )
"Kaynak" sayfası E12:E15 arası vardiya döngüsü E12= 20-08 E13= 08-20 E14= X E15= X

OptionButton'lar ile vardiyayı 8,12 veya 24 saat olarak seçmemiz için kod düzenleyebilir miyiz?

Sağlıklı hayırlı günler.
Saygılarımla.
 
Sayın @ycicek .

Açtığınız konu cevapsız kalsın istemedim.

Bu konu sayfasındaki isteğiniz mevcut belgenizdeki işleyişe ve verilere pek uygun düşmüyor galiba.
Örneğin personel sayfasındaki Pazartesi, Salı... gibi hafta tatili günü verileri havada kalmayacak mı?

Mevcut belgenizdeki formül/makro kurgulaması tamamen,
vardiya tablosu oluşturulacak tarih ile AI3'teki yılın ilk günü (haftanın hangi günü olduğu) arasındaki farkın
7 günlük hafta ritmine göre ve kişinin hafta tatili gününü dikkate alarak, 3 vardiya türü arasında döndürülmesi üzerinden çalışıyor.

Kaldıki mevcut Vardiya tablonuzun yapısı esneklikten biraz uzak. Zira en fazla 6 kişilik bir yapıya sahip.

İsterseniz; vardiya sayfasındaki 14-21'inci satırlar arası bir tablo, 23-27'nci satırlar bir tablo, 31-38'inci satırlar arası bir tablo,
23-27 ve 41 ve devamındaki satırlarda yer alan bölümler de ayrı birer tablo olmak üzere parçalara (ayrı sayfalara) ayırın.
Ardından da işlemler sonrasında tamamen ayrı bir sayfada da nihai sayfayı, ilgili tablo parçaları, bulundukları yerlerden alınarak alt alta
biraraya getirilmek şeklinde bir tasarım oluşturun onun üzerinden gidilip, tablodaki satır sınırı sorununun da önüne geçilmiş,
tabloya esneklik kazandırılmış, genel geçer, diğer forumdaşların da işine yarayacak bir şeyler ortaya çıkmasına vesile olunmuş olur.

.
 
Sevgili @Ömer BARAN üstadım,

daha önce ayrı tablolar ile çalışma yapmadığımdan söylediğinizi anladım fakat uygulamaya geçiremedim. dediğiniz gibi ayrı sayfalar oluşturup bıraktım. Ekli dosya da ekledim. Zamanınız olursa bakarsanız sevinirim.

Saygılarımla. 🙏
 
Eyvallah, saygı bizden.
Dosya eklememişsiniz Sayın @ycicek . ;)

-- 14-21'inci satırlar, 22-29'uncu satırlar, 30-38'inci satırlar, en alttaki İMZA bloku bölümü ayrı sayfalarda olur,
Bu sayfalar gizli de tutulabilir elbette. Ayrıca, bu sayfalardaki sütun yapıları, mevcut belgenizdeki gibi aynı şekilde olursa iyi olur.
-- Bilgiler bu sayfalara makro vasıtasıyla yazdırılır (amaç herbir tablonun alt kısmının personel ilavesine uygun olarak genişleyebilmesi).
-- Kullanılacak makronun en sonunda da ANA sayfada (kullanıcının göreceği sayfa), aralarında istenilen adette satır/satırlar şeklinde boşluklar bırakılarak basit kopyala/yapıştır işlemiyle birleştirilir.

.
 
Eyvallah, saygı bizden.
Dosya eklememişsiniz Sayın @ycicek . ;)

-- 14-21'inci satırlar, 22-29'uncu satırlar, 30-38'inci satırlar, en alttaki İMZA bloku bölümü ayrı sayfalarda olur,
Bu sayfalar gizli de tutulabilir elbette. Ayrıca, bu sayfalardaki sütun yapıları, mevcut belgenizdeki gibi aynı şekilde olursa iyi olur.
-- Bilgiler bu sayfalara makro vasıtasıyla yazdırılır (amaç herbir tablonun alt kısmının personel ilavesine uygun olarak genişleyebilmesi).
-- Kullanılacak makronun en sonunda da ANA sayfada (kullanıcının göreceği sayfa), aralarında istenilen adette satır/satırlar şeklinde boşluklar bırakılarak basit kopyala/yapıştır işlemiyle birleştirilir.

.

Merhaba @Ömer BARAN ağabey, haklısınız dosya boyutu uyarısı vermişti. Acil bir işim çıktı ve daha sonra cevap yazarım dedim ama mesajı paylaşmış farkında değildim. Dosyayı winrar ile sıkıştırıp ekledim.

Saygılarımla.



🤗 @Bilgi
 

Ekli dosyalar

@Ömer BARAN abim ellerine sağlık. Tam düşündüğümüz gibi olmuş.

2 yerde düzenleme yapma imkanımız var mı?

VARDİYA2 VARDİYA3
20-08 HT
HT ( Eklenecek ) 20-20 ( 20-20 yerine 20-08 )
HT HT ( HT Yerine 08-20 )
08-20

HT yerine de T tatil mi kullansak acaba çünkü HT'yi 7 günlük çalışmada kullanmıştık burada Vardiya 2 ve Vardiya3'te 1 ve 24 saat çalışma olduğu için bir hafta çalışmış olmuyor. O sebepten HT güdük kalıyor ne dersiniz T yapsak yasa X işe gelmiyor anlamında daha mı iyi olur?
 
Kullanılacak simgeler sizin tercihiniz, ona bir şey diyemem tabi.

Benim öngörüm;
8 saatlik seçenek eskisi gibi 3'li vardiya döngüsü ve 7 günlük hafta döngüsü,
12 ve 24 çalışma sisteminde ise 7 günlük hafta döngüsü yok, 3'lü vardiya döngüsü.


-- Önce KAYNAK isimli sayfada E5:E16 aralığında istediğiniz sıralama neyse ona göre değişiklik yapın.
-- PERSONEL sayfasında W ve X sütunundaki veri doğrulama seçimlerinin, KAYNAK sayfasındaki listelerle uyumlu olup olmadığını kontrol edin.
Ben HT koşullu biçimlendirmesinden yararlanılabilir diye düşünerek KAYNAK sayfasında HT yazmıştım.
Aslında 24 sistemindeki XX lerine yerine XX1 ve XX2 gibi ayırt edici veri yazmak daha kontrol edilebilir olabilir.
Bunların kendi arasındaki sıralarının da değişmesi gerekebilir, deneyerek doğru ayar bulunabilir.
-- Son olarak da VARDİYA sayfasında X'ler için HT benzeri (isterseniz de başka) koşullu biçimlendirme ayarlarını yapın.

.
 
Gerekli düzenlemeleri yaptım aşağıdaki kod üzerinde de düzenleme yaptım satır sırası kaydığı için, fakat;

Ekli png dosyasından da anlaşılacağı üzere hem E2'de hem de VBA kod hatası alıyorum.

Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(4 satır)
 

Ekli dosyalar

  • hata.webp
    hata.webp
    66.7 KB · Görüntüleme: 12
Kod hata verdiğinde, pveri(psatt, vrdsut) ibaresinin üzerine fareyle geldiğinizde görünen değer
Range(kalan) adresi hangisiyse o alanda mevcut bir değer DEĞİL demektir.
Bu sorunlu değer, Personel sayfasında psatt+3 numaralı satırda, vrdsut numaralı sütundaki değerdir.

NOT: Kaynak sayfasındaki hücreleri fareyle sürükleyerek değil, elle yazarak değiştirin
(veri doğrulama listelerinden hata olup olmadığına bakabilirsiniz)


.
 
NOT: Kaynak sayfasındaki hücreleri fareyle sürükleyerek değil, elle yazarak değiştirin
(veri doğrulama listelerinden hata olup olmadığına bakabilirsiniz)


Personel sayfasındaki W ve X sütunlarındaki vardiya başlangıç değerlerini El ile değiştirerek düzelttim. Vardiya listeleme hatası çözüldü.
24 saatte problem yok 12 saat seçildiğinde 08-20 gelmiyor .

VARDİYA2
20-08
X1
X2
08-20 Ekleme satır olduğu için E1:E4 arasındaki kodda gozukmuyor 08-20
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
 
10 numaralı cevapta alıntıladığınız kod kısmındaki kalan="....." kısımlarına bakıp ilgili kısma doğru adresi yazarak deneyin.

Vardiya alanında görmek istediğiniz koşullu biçimlendirmeleri, gizli durumdaki vrd1 sayfası D6 hücresi üzerinden yapmanız gerekiyor.
Zira kod verileri önce gizli durumdaki sayfalara yazıyor. İşlem bittikten sonra da sayfalardan kopyalayarak VARDİYA safyasında birleştiriyor.

Ayrıca, işlemlerin tümünü deneyip kontrolden geçirdikten sonra nihai halini forumda paylaşmanızda yarar olduğunu belirteyim.

.
 
Sayın @ycicek , sanırım mevzu tamam.

-- Vardiya sayfası V2'deki formülü =METNEÇEVİR(BUGÜN();"GG.AA.YYYY GGGG") olarak değiştirin (METNİ KAYDIR AKTİF).
-- Mevcut kodun üst kısmını aşağıdaki gibi değiştirip deneyin.

NOT: M2'deki TARİH formülünün GÜN kısmını =TARİH(AI3;AI7;1) şeklinde 1 olarak değiştirip deneyin ki;
sadece döngüyü değil, başlangıç vardiyasının doğruluğunu da kontrol edebilesiniz. Kontrol sonrası tarih formülünü
tekrar eski haline getirirsiniz.
CSS:
Görüntülemek için giriş yapmanız gerekmektedir.
(13 satır)

.
 
Moderatörün son düzenlenenleri:
Üstadım #17 no.lu mesajınızdaki düzeltmeleri de yaptım. 8-12-ve 24 geçişlerde herhangi bir problem yok her birinde döngüler başarılı çalışıyor. Fakat ne hikmetse 8 Saat vardi döngüsünde da Ocak ayından başlayarak kontrol ettiğimde Mart ayına gelindiğinde döngü şaşırıyor. HT'den sonraki ilk gün HT'den önceki son günle aynı oluyor. Yine ne hikmetse Nisan ayına geçildiğinde düzeliyor.

Mart ayını inceleyebilir misiniz? niye hatalı dönüyor.
 

Ekli dosyalar

Üst