Çözüldü Vba kod revize talebi

  • Konuyu başlatan Konuyu başlatan ycicek
  • Başlangıç tarihi Başlangıç tarihi
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

ycicek

Site Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Sevgili Üstadım @Ömer BARAN Ağabey daha önce vba kodunu yazdığınız vardiya dosyamızın vardiya sayfasında J33:J38 P33: P38 ve Y33:Y38 aralıklarında iki tarih arası çıkarma işlemi yapıldığından. "Sayfa Aktar" butonu ile aktarma işlemi bittikten sonra manuel yazdığımız formül silinmektedir. Formülün silinmemesi için kodda düzeltme mi yapılmalı çözemedim. Yardımlarınızı talep ediyorum.

Saygılarımla.
 

Ekli dosyalar

Çözüm
GÜN SAYISI kısmında takvim aralığına denk gelen gün sayısını,
tarih sütunlarında ise Personel sayfasındaki tarihleri görmek isterseniz;
Vardiya sayfasının kod bölümünde, VARDIYA_PERSONEL_LISTELE makrosunda yer alan
aşağıdaki (benzer durumda 3 adet kısım var) bölümde;
kırmızı işaretlediğim kısımları (sağındaki TEK TIRNAK işaretleri dahil) silmeniz yeterli olur.

.
VBA:
You must log in to view content
(4 satır)
Merhaba Sayın @ycicek .

Vardiya sayfasının kod bölümündeki VARDIYA_PERSONEL_LISTELE isimli makroda,
For...Next döngüsünün içinde yer alan If ...... End If arasındaki,
kırmızı renklendirdiğim satırların altına yeşil olanları ekleyin.

.
VBA:
You must log in to view content
(8 satır)

.
 
Çok teşekkür ederim üstadım. Birşey daha sormak istiyorum. Vardiya takvimi "Vardiya" sayfası D5:O5 aralığındaki veriye göre hareket ettiğinden

BAŞLANGIÇ VARDİYASIABCDEF
16-2408-1624-0816-2408-1624-08

işyeri her değiştiğinde değiştirmektense personel başlangıç vardiyası verilerini "Personel Listesi" sayfasında G sütununa yazsak oradan alsa olur mu? Vardiya sayfasından da formül ile çağırsak verileri. İnşaallah anlatabilmişimdir.
 
Bilgisayar başından kalktım.
İşyeri değişikliği derken kastınız nedir? Terfi Merkezi seçimi mi?

Daha evvel konu üstünde epey kafa yormuştuk ve döngünün sağlama alınmasını sağlamak üzere,
sağ taraftaki gizli sütunda yazılı yılın 1 ocak günü için vardiya harflerine denk gelen vardiya saat başlangıçlarını da
vardiya sayfası sağ üst kısmındaki başlangıç vardiyası seçiminden aldırılmıştı.
Takvim ilerletildiğinde ise bu başlangıç değerine göre haftalar itibariyle Kaynak sayfasındaki sıraya göre döndürülerek elde ediliyor idi.

İsteğinizi tam olarak anlayamadım doğrusu.
 
Evet üstadım Terfi Değiştiğinde Personel isimleri değişiyor. Her personelin vardiya başlangıcı farklı olduğu için terfi ismi değiştiğinde personelin başlangıç vardiyası bir önceki aydan kaldığı yerden devam etmesi için 1 Ocak itibari ile vardiya başlangıcını yukarda D5:O5 aralığında aşağıya açılan listeden manuel olarak değiştiriyoruz. Bu manuel değişikliği Personel Listesinde G sütununda her personelin 1 Ocak itibari ile başladığı vardiyayı bir defa yazsak D5:O5 aralığı da verileri oradan alsa olur mu?
 
Haklsınız üstadım sonuç olarak kullanıcının işini kolaylaştırırken aynı işi yapacaksa mevcut yapıyı bozmayacaksa değer. Fakat bu değişiklik zahmete yol açacaksa bu şekilde kullanılabilir.

Konu başlığımız çözüme kavuştu. Dolayısıyla "ÇÖZÜLDÜ" olarak konuyu kapatabiliriz.

İyi ki varsınız. 🙏 🤗 👍
Saygılarımla.
 
Değişiklik yapmak mesele değil Sayın @ycicek .
Zaten belgeye/kodlara/formüllere aşina durumdayım.

Sanırım yanlış anladınız.
İstediğiniz değişikliğin muhtemel etkilerini hesaba kattınız mı diye sormak istedim sadece.
Bakak lazım ama, iki taraftaki başlangıç vardiyası, birbiriyle etkileşimli olarak da kodlanabilir gibi geliyor aklıma.
Vardiya harfinin etkisi şu an sadece harf yazılı değilse, üst taraftan başlangıç vardiyasını tespit etmek için var.
Harf olayı tamamen iptal edilebilir de ama o zaman vardiya sayfasındaki üst kısımdaki seçim havada/anlamsız olmayacak mı,
sistemi nasıl düşündüğünüzü bilemiyorum.
Kullanım senaryosu kafanızda tamamsa, siz Türkçe'sini söyleyin, biz de Excelce'sini yazalım.

.
 
Haklısınız üstadım yukarıda kullandığımız vardiya seçimi boşa çıkacak. Yapıyı kurduğumuz zaman bunu düşünemedim. Terfi sayısı 50'nin üzerinde her terfide bu başlangıç değerleri değişebilir. Kullanıcının işini kolaylaştırma açısından program kullanılabilir hale gelince şekillenmeye başladı. Harfleri sıralama için düşünmüştüm. Personel Listesinde G sütununda "Vardiya Sırası" yazıyordu. personelin sırası A iken E yazdığımızda "Vardiya" sayfasında E sırasına geçiyordu. Sonrasında vba koda geçince bu iptal oldu.

Mevcut yapının yaptığı işlemi harfleri kaldırdıktan sonra da aynı şekilde çalışacaksa kaldırmamız da problem yok.
 
Benim en baştan beri gördüğüm bir durum daha var.
Kendiniz düşünüp ona göre karar vermişsinizdir diye üstünde durmamıştım,

Vardiya tablosundaki kişi sayısı sınırı hep böyle mi olacak? Tablonuz her zaman 6 kişilik midir?

Şayet kişi sayısı değişken oacaksa; alt taraftaki özet bilgi alanı ve İMZA bloku başka başka sayfalarda/alanlarda olup;
hem vardiya bilgileri, hem de alttaki bölümlerin altları boş kalır ve kişi sayısı artırmak mümkün olur.
İşlem tamamlandıktan sonra bu üç tablo parçası kodlarla tekrar alt alta getirilerek işlem tamamlanabilir.

Vardiya başlangıç türünü Personel sayfasından alma işi neticede ne oluyor, değişiklik öngörüyor musunuz?

.
 
Üstadım en fazla 6 genelde 4 bazı yerlerde 2 o yüzden orası öyle kalabilir.
Vardiya başlangıç türünü Personel sayfasından alma olarak değişiklik yaparsak kullanıcının işini kolaylaştırmış oluruz ve çok makbule geçer.
 
O zaman Vardiya sayfasında 4-5'inci satırdaki alan İPTAL ve kodlama ona göre güncellenecek demektir.
Sayfa yapısı bakımından; üstteki alan boşalınca beki satır silmek istersiniz ama benim için kolay yöntem
işlemlerin yerini değiştirmek yerine, gereksiz hale düşen satırların yüksekliğini azaltıp, sayfayı görünüm olarak yukarı kaydırmak.
Yok eğer ille de üstte bu kadar satıra gerek kalmıyor derseniz, sayfanın olması gereken halini (satır silme dolayısıyla) tekrar foruma ekleyin.
TAbi satır silerken sağ tarafta gizli sütundaki bilgilerin varlığını unutmayın, yani satırı değil de ilgili satırlarda A-AH aralığındaki hücreleri silerek
tablonun yukarı kaymasını sağlayın.
 
Satır silme işlemine gerek yok Üstadım. Satır silme işlemi yaptığımızda tüm kodlamalar değişmek zorunda kalacak. Satırların yüksekliklerini azaltarak çözeriz sizin de takdir ettiğiniz gibi
 
(y)
Böylece asıl önemli avantaj,. malum koda uygulattığımız formül var onun güncellenmesine gerek kalmaması.
Ben yüksekliği azaltılan mevcut vardiya başlangıç hücrelerine geçici olarak,
seçilen TERFİ MERKEZİ bilgisine göre sayfaya, personel adıyla beraber, başlangıç vardiyalarını yine
aynı yerlerine yazdırıp, işlem bitişinde de tekrar bu hücreleri boşalttıracağım, en pratik/en zahmetsiz olanı böyle olacak gibi.
Çünkü koda uygulattığım formül D4:O5'den veri alarak hesaplama yapıyordu.

Hallederiz inşallah, iyi sabahlar.
 
Üstadım sorunsuz çalışıyor bence biraz inceledim. Bu haliyle çok çok çok kullanışlı olacak. Elleriniz dert görmesin. Affınıza sığınarak soruma izin tarihleri konusunda ekleme yapmak istiyorum.

"Vardiya" sayfamızda 33-36 arası satırda bulunan "Personel Listesi" sayfasından gelen izin rapor vs. tarihleri personel adı ve terfi adına göre bağladığımızdan terfi değişince personel isminin karşısındaki tarihler otomatik geliyor. Fakat biz ay değiştirdiğimizde bir önceki ayın izin tarihi de otomatik gelmeye devam ediyor. Bu olayı tarihe bağlayabilir miyiz.? D14:AH14 ( Vardiya Takvimi ) tarihleri arasında bulunmayan tarihleri getirtmesek mi? Ya da Personel Listesi sayfasından mı sildirmek lazım tarihleri tavsiyeniz ne olurdu üstadım bu konuda.

Sizin ve ailenizin ve dahi tüm islam aleminin kandili mübarek olsun.

Saygılarımla.
 
Üstadım super düşünmüşsünüz. Bir sonraki aya sarkan izin miktarı kadarını o ay göstermek bence harika. Fakat sizin düşüncenizi bizim millet anlamakta zorluk çeker. Şöyle ki;

Ocak ayından Şubat ayına sarkan izinlerde Ocak dönemi Vardiya Listesini göreceğinden izin bitiş tarihini şubat 14 olarak anlar. Halbuki 15 şubattan devam eden izni bir sonraki vardiya dönemine sarkacaktır. Bu yanlış anlamaları gidermek için ya bir alan daha ekleyip İşbaşı Tarihi alanı oluşturmamız lazım ki bunu bile anlamazlar.
 
GÜN SAYISI kısmında takvim aralığına denk gelen gün sayısını,
tarih sütunlarında ise Personel sayfasındaki tarihleri görmek isterseniz;
Vardiya sayfasının kod bölümünde, VARDIYA_PERSONEL_LISTELE makrosunda yer alan
aşağıdaki (benzer durumda 3 adet kısım var) bölümde;
kırmızı işaretlediğim kısımları (sağındaki TEK TIRNAK işaretleri dahil) silmeniz yeterli olur.

.
VBA:
You must log in to view content
(4 satır)
 
Çözüm
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst