Z

Çözüldü Günlük vardiya çizelgesini Haftalık haline dönüştürme

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

zcn43

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba arkadaşlar. Elimdeki aylık vardiya listesini, vardiya sonlarındaki hafta tatillerini baz alarak, haftalık haline dönüştürmem gerekiyor. Elimdeki listede her kişi için gün gün çalışma programı var yani,
Ayın 15 i ile 21 i arasında 2. Vardiya da çalışan Hafta tatili de 21'i (Çarşamba) olan kişiyi ,
15.10.2020 - 21.10.2020 = 2 Çarşamba olacak şekilde yapabilir miyim?
 

Ekli dosyalar

Merhaba, foruma hoşgeldiniz Sayın @zcn43 .

Sorunuzun çözümü için makro kullanmak en iyisi gibi görünüyor.

Bunun için;
-- sayfaya bir adet düğme/şekil/metin kutusu ekleyin,
-- alt taraftan sayfanın adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçin,
-- açılacak VBA ekranında sağdaki boş alana aşağıdaki kodu yapıştırın ve VBA ekranını kapatın,
-- sayfaya eklediğiniz düğmey/şekile/metin kutusuna fareyle sağ tıklayıp MAKRO ATAyı seçin,
-- karşınıza gelecek küçük ekranda VARDIYA_LISTELE makro adını seçerek işlemi onaylayın.

Artık; bu düğme/şekil/metin kutusuna fareyle tıkladığınızda istenilen listeleme;
B21 hücresinden itibaren, B-D sütunlarına yapılır.

NOT: İşlemin başlangıç ayının 10'uncu ay, yılının ise 2020 olduğu varsayıldı.
Belgenizi *.xlsb veya *.xlsm uzantılı olarak farklı kaydedin.


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

.
 
Hocam makro içindeki kod; "ay = ilkay: hbas = CDate("15/" & ay & "/" & yil)" 15 ile başladığı için hafta başları 15. ile başlıyor. Bunu 15' i hafta tatili olan kişilerde 16 ya cevirerek ayarlayabilirim. Eğer başka bir yolu yoksa.
 
Bilgisayar başında değilim.
Yanlış hatırlamıyorsam, personelin satırında,
alta yazılan listede bu personele ait ilk satırda;
-- ilk sütunda HT varsa o kişi için haftabaşı 16,
-- ilk sütunda HT değil bir vardiya no varsa haftabaşı 15 olarak yzdırılıyordu.
Böyle olmuyor mu?

.
 
Malesef hocam tüm listeyi 15 inden başlatıyor ama diğer haftalarda düzeliyor . Sadece ilk haftada bu şekilde. Böyle olunca da 7. gün HT ye denk gelmiyor. "ay = ilkay: hbas = CDate("15/" & ay & "/" & yil)" bu kodu 16 yaparsam ozaman 15 i HT olanlari 16.sindan baslatiyor. Ama bu şekilde bile olsa inanın çok sevindim. Özellikle vardiya si değişen kişiyi nasıl yaptınız anlamadım :))
 
"kod anlatılmaz, yazılır" diye bir söz vardır.

HT gününün tarihi de listeye yazılacaksa,
yani HT günü tarihi atlanmayacaksa;
HT nin günü, kendisinden önceki haftaya mı dahildir, yoksa kendisinden sonraki haftaya mı dahildir.
Ya da şöyle sorayım; HT haftanın başı mıdır, sonu mudur?

En iyisi; biri ilk sütunda HT ile başlayan,
biri en sağda HT ile biten olmak ve her ikisi için de haftaiçi vardiya değişikliği yer almasını sağlayıp, bu verilere göre, bu iki personel için olması gereken sonuçların tümünü elle yazarak yeni bir örnek belge yükleyin.

.
 
HT kendisinden önceki (solundaki) vardiyanın sonu ve o vardiyaya bağlı. Yani 6 gün 2. vardiyada çalışan kişinin HT side 2 ya da solundaki vardiya neyse ona bağlı oluyor. Daha detaylı ekte anlattım hocam. Kafanızı çok ta karıştırmak istemem.Yazdığınız kod sorunuma büyük oranda çare oluyor. Ama %100 çözüm bulacağım derseniz daha detay veririm.
 

Ekli dosyalar

Kodda bir sorun yok aslında.
Sayfada AY ve YILa ait bir veri kaynağı yok.
Yani E1'deki 15 sayısının hangi yıl/aya ait olduğu belli değil.
10'uncu ay için veri alanı 35'inci sütuna kadardı, Kasım için ise 34'üncü sütuna kadar.
Başlangıç ayının gün sayısına (Temmuz için 31, Kasım için 30 gibi) 4 ekleyerek sütun sayısının doğruluğunu kontrol edebilirsiniz.
Mevcut kod, 1'inci satırdaki son dolu sütuna kadar şeklinde güncellendi.

Bu nedenle eklediğim belgeye YIL/AY seçim alanı ve TEMİZLE/LİSTELE diye 2 adet ŞEKİL ekledim.
Bu şekillere fareyle tıklayarak gerekli listeleme / temizleme yaptırılabilir.

.
 

Ekli dosyalar

Malesef özel mesajlaşma imkanı sadece VİP ÜYELİĞİ olanlar için mevcuttur. (doğal olarak soru sormak için değil)

Forumumuza katkı vermek isterseniz;
-- VİP ÜYELİK satın alabilirsiniz (link cevabımın altındaki İMZA bölümünde var)
-- Bir forum yneticisinin verdiği cevapla ilgili kişisel memnuniyet iletmek için de cevapların altındaki
KAHVE ısmarla / ÇAY ısmarla düğmeleri üzerinden de kişi bazlı katkı sağlayabilirsiniz,
-- Etrafınızdaki Excel kullanıcılarını forumumuzdan haberdar edip, üye olmalarını salık verebilirsiniz,
-- Tüm sosyal medya kanallarında forumumuzdan bahisle link verebilir,
-- Varsa kendi internet sitelerinizde, forumumuza link verebilirsiniz.


.
 
Teşekkür ederim. Hayırlı olsun. VBA öğrenmek için Udemy den kurs aldım ama yarıda bıraktım. Önce fonksiyonları tamamen öğreneyim sonra VBA ya devam ederim diye düşündüm. VBA fazla karısık geldi bana. Formüllerle özellikle düşeyara etopla içiçe formullerini eksiksiz öğrenmeye çalışıyorum.
 
Üst