Aylık Faaliyeti Tabloda İşaretleme

Katılım
13 Aralık 2006
Mesajlar
575
Excel Vers. ve Dili
Office 2010
Merhabalar;

Ekli dosyamda "Liste" sayfasındaki verileri "Seyyar" sayfasındaki "B2" nolu hücrede yazan aya göre dökümünü almak istiyorum. "Ocak" ayında kim hangi tarihlerde görevlendirilmişse, ilgili hücreye "x" yazılsın. Bir nevi tabloyu ters çevirmek gerekiyor. Yardımcı olmak isteyenler için önizleme resimleri hazırladım.
Şimdiden Teşekkürler.

Liste Sayfası


Seyyar Sayfası
 

Ekli dosyalar

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.
Alt taraftan Seyyar adlı sayfanın adına fareyle sağ tıklayın ve KOD GRÜNTÜLEyi seçin.
Açılan VBA ekranında sağ taraftaki boş alana aşağıdaki KOD'u yapıştırın.

Ay adı veya yıl değiştirerek sonucu gözlemleyin.

Bu arada Seyyar adlı sayfa E24 hücresindeki formülün =TOPLA(AG3:AG20) şeklinde olması lazım.
Bu formülü de değiştiriniz.
.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [B2, AB2]) Is Nothing Then Exit Sub
Call BRN
End Sub

Sub BRN()
Dim s As Worksheet: Set s = Sheets("Seyyar")
Dim l As Worksheet: Set l = Sheets("Liste")
s.Range("B5:AF20").ClearContents
s.Range("AH1").Formula = "=DAY(EOMONTH(DATE($AB$2,MATCH($B$2,{""OCAK"",""ŞUBAT"",""MART"",""NİSAN"",""MAYIS"",""HAZİRAN"",""TEMMUZ"",""AĞUSTOS"",""EYLÜL"",""EKİM"",""KASIM"",""ARALIK""},0),1),0))"
s.Range("AH1") = Range("AH1")
With s.Range("B4:AF4")
    .Formula = "=IF(COLUMNS($A$4:A4)>$AH$1,"""",DATE($AB$2,MATCH($B$2,{""OCAK"",""ŞUBAT"",""MART"",""NİSAN"",""MAYIS"",""HAZİRAN"",""TEMMUZ"",""AĞUSTOS"",""EYLÜL"",""EKİM"",""KASIM"",""ARALIK""},0),COLUMNS($A$4:A4)))"
    .Value = .Value
End With
s.Range("AH1").ClearContents
Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
For ssütun = 2 To 32
    For ssatır = 5 To s.[A65536].End(3).Row
    If s.Cells(4, ssütun) = "" Then GoTo 10
        For lsütun = 3 To l.[IV1].End(xlToLeft).Column
            For lsatır = 2 To l.[A65536].End(3).Row
                If l.Cells(lsatır, lsütun) = "X" And _
                    s.Cells(4, ssütun) = l.Cells(lsatır, 1) And _
                    l.Cells(1, lsütun) = s.Cells(ssatır, 1) Then
                    [B][COLOR="Red"]s.Cells(ssatır, ssütun) = "x"[/COLOR][/B]
                End If
            Next
        Next
10: Next
Next
Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
MsgBox "İŞLEM TAMAMLANDI"
End Sub
 
Son düzenleme:
Katılım
13 Aralık 2006
Mesajlar
575
Excel Vers. ve Dili
Office 2010
Ellerinize sağlık, Allah Razı Olsun kardeşim. Mükemmel olmuş.
 
Katılım
31 Ocak 2012
Mesajlar
2,430
Excel Vers. ve Dili
Excel 2010 , Türkçe
Altın Üyelik Bitiş Tarihi
24.01.2019
selam,
alternatif olarak formüllerle yapılmış dosya ektedir.
kolay gelsin..
 
Son düzenleme:
Katılım
13 Aralık 2006
Mesajlar
575
Excel Vers. ve Dili
Office 2010
selam,
alternatif olarak formüllerle yapılmış dosya ektedir.
kolay gelsin..
Vay kardeşim senin sistem de ayrı bir güzel olmuş. Bayaa bir uğraşmışssınız, ne kadar teşekkür etsem azdır. Ellerinize sağlık. Kod ile yapılan işlemde bi bekleme süresi var ama bunda hiç yok, anında cevap. Tebrikler.
 
Katılım
13 Aralık 2006
Mesajlar
575
Excel Vers. ve Dili
Office 2010
Merhaba
selam,
alternatif olarak formüllerle yapılmış dosya ektedir.
kolay gelsin..
Bi kaç açıklamaya ihtiyacım var. Acelem yok, ne zaman boş vaktiniz olursa o zamana kadar beklerim. :)

Hazırladığınız dosyadaki bu formüldeki "KAYDIR" fonksiyonunu çözemedim, neden kulandık?
Kod:
=KAYDIR(Liste!$E$2;;;1;BAĞ_DEĞ_DOLU_SAY(Liste!$E$2:$AC$2))
Burada "-7" ne işe yarıyor.
Kod:
=İNDİS(Personel;1;SATIR()-7)
Burada da "DOLAYLI" fonksiyonu?
Kod:
=DOLAYLI("'Liste'!$B$4:"&ADRES(KAÇINCI(9,9999E+307;Liste!$B:$B);KAÇINCI("zzzzz";Liste!$A$2:$AC$2)))
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,070
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Sayın harziyan, sanıyorum bu dosyayı seyyar görev ve 3 aylık ek arazi tazminatı için kullanıyorsunuz. Görevlere X işaretini kolayca koymak için aşağıdaki kodları Liste sayfasının kod bölümüne yapıştırabilirsiniz:

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
sonsat = Cells(Rows.Count, "B").End(3).Row
sonsüt = Cells(2, Columns.Count).End(xlToLeft).Column
If Intersect(Target, Range(Cells(4, "E"), Cells(sonsat, sonsüt))) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Target = "X" Then
Target = ""
Else
Target = "X"
End If
Application.EnableEvents = True
End Sub
ilk tıklayışta hücreye X koyar, ikinci tıklayışta X'i siler.
 
Katılım
13 Aralık 2006
Mesajlar
575
Excel Vers. ve Dili
Office 2010
Sayın harziyan, sanıyorum bu dosyayı seyyar görev ve 3 aylık ek arazi tazminatı için kullanıyorsunuz.
Aynen öyle Yusuf kardeşim. İlgilendiğin için teşekkür ederim. Aslında bu kısım dosyanın bir bölümü. Orjinal dosya biraz daha kapsamlı. Ben dosyanın tamamını yükleyerek karışıklık yaratmak istemedim. Bitirince koyacam buraya. O zaman ilave desteklerinize ihtiyacım olacaktır.

Diğer çözümlere ilişkin de bir sorunu yeni farkettim.
Aynı tarihte birden fazla görevlendirilen arkadaşlar olduğunda sadece tek bir tarihe ait veriler geliyor.
Örneğin 12 Ocakta iki görevlendirme yapılmış. Ancak sadece tek bir görevlendirmedeki değerler işaretleniyor. Acaba sorun nereden kaynaklanıyor.
 
Son düzenleme:

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,070
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Bunu da şöyle yapabiliriz, Liste sayfasında X koyulduğunda otomatik olarak Seyyar sayfasında o kişinin gününe X koydurabiliriz. Ancak makroyla olacağı için biraz kasabilir.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.
Gönderdiğim önceki cevapta kırmızı olarak işaretlediğim (önceki cevabıma bakınız)
satırı aşağıdaki ile değiştirirseniz, aynı kişi ve tarih için 1'den fazla ise görev sayısı kadar x işareti eklenir.
Kod:
s.Cells(ssatır, ssütun) = "x" & s.Cells(ssatır, ssütun)
 
Son düzenleme:

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,070
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Sayın Ömer Baran, dosyanızı incelemedim ancak, arkadaşın istediği aynı kişiye aynı gün için birden fazla görev değil, aynı günde farklı kişilere görev verilmesi. Daha açık anlatmak istersek, bizim işte arazi görevleri olduğunda bir araçla bir veya birkaç kişi bir yere giderler, başka bir araçla yine başkaları başka yere giderler, belki başka araçla başkaları bir yerlere giderler. Liste sayfasında her satıra gidilen bir yer yazıldığı için o gün birden fazla yere gidildiyse formüller sadece ilk satırın bilgilerini alıyorlarmış. Arkadaş buna çözüm istiyor.

Verdiğiniz cevap sorunu çözüyor mu bilmiyorum, sadece konuyu daha açık ifade etmek istedim.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhabalar Yusuf Bey.
Benim eklediğim kod, tarih-kişi kesişim hücresinde (tarih son satıra kadar, isim de son sütuna kadar döngüyle taranıyor) "X" yazılıysa Seyyar adlı hedef sayfadaki yine isim-tarih kesişim adresine "X" yazıyor idi. Bu sayfada hem tarih ve hem de isimler tekrarsız olarak yer alıyor.
Kaynak sayfada ise isimler tekrarsız, tarihler tekrarlı şekilde yer alıyor (muş) .
Son eklemem ile kod, "X" yazma yerine hücre içeriği ile "X"i birleştirme şeklinde işlem yapacağından aynı isim için aynı tarihi içeren satırlarda X işareti varsa; hedef hücrede bu sayı kadar X harfi yazılmış olacaktır.
 
Katılım
13 Aralık 2006
Mesajlar
575
Excel Vers. ve Dili
Office 2010
Yusuf Kardeş aslında güzel oldu, niçin dersen, mükerrer kayıtlar da ortaya çıkıyor böylece. Diğer günlerde aynı tarihlerdeki görevlendirmeler de düzeldi. Ya da benim gözümden kaçmış mı diyeyim bilemedim. Ama sorun ortadan kalktı. Teşekkürler Ömer Bey.
Yalnız söyleyip söylememekten hicap ediyorum, neden süre biraz uzun sürüyor acaba? Diğer fonksiyonlu çözüm saniyesinde yanıt veriyor da.:oops:
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Malesef kod bilgim bu kadarına yetti.
Makro-VBA başlığı altında konu açmış olduğunuzdan, konuya formül ile çözüm için hiç bakmadım.
Sayın sakman'ın kullandığı formül yapısına da bakmış değilim.
Akşam fırsat bulursam formül ile çözüm önerisinde bulunurum.

Benim gönderdiğim kod for-next döngüsü şeklinde çalışıyor (veri alanı örnek belgenizde 31x16 ve 42x16 şeklinde), bu nedenle işlem zaman alıyor.
Kod ustaları daha hızlı çalışan kod önerisinde bulunacaklardır.
Konu gerilere düştüğünde, konunun güncel olduğunu belirten kısa mesaj yazarsanız, yeni cevaplar gelecektir, biraz sabırlı olmanız lazım.

Formül ile çözüm önerisi için (belki lazım olur) tekrarlanma sayısıyla ilgili bir sınır söyleyebilir misiniz? Örneğin bir tarih en fazla kaç kez tekrarlanabilir?

Bu arada TOPLAM sütununuzda dolu hücre mi sayılacak yoksa X adeti mi?
Bir hücrede 1'den fazla X olabileceğine göre bu konunun da aydınlanması lazım.
Bir de kişi sayısı en fazla kaç olabilir acaba?
 
Son düzenleme:
Katılım
13 Aralık 2006
Mesajlar
575
Excel Vers. ve Dili
Office 2010
Malesef kod bilgim bu kadarına yetti.
Makro-VBA başlığı altında konu açmış olduğunuzdan, konuya formül ile çözüm için hiç bakmadım.
Yine de çok çok teşekkür ederim. Konuyu bilerek VBA başlığına attım, fonksiyonlu işlemler dosyayı kabartıyor ve hantallaştırıyor. Kod ile daha seri işlem yapılıyor diye düşünmüştüm.

Sorunuza gelince benim için bu kadar çözüm kafi. Aynı tarihte maksimum çift görevlendirme yapıyoruz, sizin verdiğiniz çözüm de bu iş için yeterli.

Çok çok teşekkürler. Geceniz de Mübarek Olsun.
 
Katılım
31 Ocak 2012
Mesajlar
2,430
Excel Vers. ve Dili
Excel 2010 , Türkçe
Altın Üyelik Bitiş Tarihi
24.01.2019
selam,
formüllerle ilgili olarak sorularınızı içeren mesajınızı yeni gördüm ve cevap vermeye çalışayım.
1 - KAYDIR fonksiyonu : Liste sayfasında, personel listesinin dinamik olarak (personel sayısı artabilir , azalabilir) yapılandırılması amacıyla kullanıldı. Bu dinamik listeye de Personel isimlendirmesi yapıldı.
2 - SATIR()-7 : Buradaki 7 nin anlamı, seyyar sayfasındaki personel isimleri listesi 8. satırdan itibaren başlıyor ve Personel isminin kullanıldığı İNDİS formülü ile formüle ediliyor. Listenin ilk ismi 8. satırda ve satır()-7 dediğimizde 8-7 =1 olur ve Personel listesinin 1. sırasındaki ismi İNDİS formülü ile gelir.
3 - DOLAYLI fonksiyonu : Liste sayfasında oluşan tablonun dinamik olarak yapılandırılması amacıyla kullanıldı. Tablo, gerek personel arttığında / azaldığında ve gerekse Gidilen yerlerin artıp / azalması ile yeni boyuta gelir. bu dinamikliği sağlamak amacıyla kullanıldı.

Umarım anlatabilmişimdir..
kolay gelsin..
 
Katılım
13 Aralık 2006
Mesajlar
575
Excel Vers. ve Dili
Office 2010
Moderatörlerden ricam bu mesajı silebilir mi? İnternetin gidip gelmesinden dolayı mükerrer mesaj göndermişim.
 
Son düzenleme:
Katılım
13 Aralık 2006
Mesajlar
575
Excel Vers. ve Dili
Office 2010
selam,
formüllerle ilgili olarak sorularınızı içeren mesajınızı yeni gördüm ve cevap vermeye çalışayım.
1 - KAYDIR fonksiyonu : Liste sayfasında, personel listesinin dinamik olarak (personel sayısı artabilir , azalabilir) yapılandırılması amacıyla kullanıldı. Bu dinamik listeye de Personel isimlendirmesi yapıldı.
2 - SATIR()-7 : Buradaki 7 nin anlamı, seyyar sayfasındaki personel isimleri listesi 8. satırdan itibaren başlıyor ve Personel isminin kullanıldığı İNDİS formülü ile formüle ediliyor. Listenin ilk ismi 8. satırda ve satır()-7 dediğimizde 8-7 =1 olur ve Personel listesinin 1. sırasındaki ismi İNDİS formülü ile gelir.
3 - DOLAYLI fonksiyonu : Liste sayfasında oluşan tablonun dinamik olarak yapılandırılması amacıyla kullanıldı. Tablo, gerek personel arttığında / azaldığında ve gerekse Gidilen yerlerin artıp / azalması ile yeni boyuta gelir. bu dinamikliği sağlamak amacıyla kullanıldı.

Umarım anlatabilmişimdir..
kolay gelsin..
Eyvallah Kardeşim;
Bir sorum gözünüzden kaçmış herhalde; Aynı tarihte birden fazla görevlendirilen arkadaşlar olduğunda sadece tek bir tarihe ait veriler geliyor.
Örneğin 12 Ocakta iki görevlendirme yapılmış. Ancak sadece tek bir görevlendirmedeki değerler işaretleniyor!!! Acaba sorun nereden kaynaklanıyor? (Yani "Seyyar" sayfasında ayın 12'sinde 6 kişinin görünmesi gerekiyor)
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.
Aynı tarihte aynı isim için 1'den fazla X işareti konulmuş olması durumu hariç olmak üzere;
formüllerle oluşturulmuş dosya ekte. Alternatif olsun.
 

Ekli dosyalar

Üst