• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

puantaj otomatik işleme

Katılım
11 Şubat 2016
Mesajlar
199
Excel Vers. ve Dili
2013
D5:AH154 arasında isimlerin olduğu kadar sütunu 1 sefere mahsus aylık hafta içi "X" cumartesi "AT" pazar "P" işliyorum. tarihler her ay otomatik olarak D4 satırından başlıyor kriterim orası. Bunu otomatik yapmam lazım sonra diğer parametreleri işlemem daha kolay olacak. Bu konuda yardımınıza ihtiyacım var. Kişiler aylık artıp azalıyor o kadar tik atmam gerek. en azından bir yönlendirme yada makro desteğine ihityacım var şimdiden herkese teşekkür ederim.
 

Ekli dosyalar

Siz devamını getirirsiniz...

'1.TARİH
tarih = Range("d4").Value
Dim SonSat As Long
SonSat = Range("c" & Rows.Count).End(xlUp).Row
If Weekday(tarih, vbMonday) = 1 Or Weekday(tarih, vbMonday) = 2 Or Weekday(tarih, vbMonday) = 3 Or Weekday(tarih, vbMonday) = 4 Or Weekday(tarih, vbMonday) = 5 Then
For i = 5 To SonSat
Range("d" & i).Value = "X"
Next i
Else
If Weekday(tarih, vbMonday) = 6 Then
For i = 5 To SonSat
Range("d" & i).Value = "AT"
Next i
Else
For i = 5 To SonSat
Range("d" & i).Value = "P"
Next i
End If
End If
 
teşekkür ederim denedim çalıştı tek sütun denedim. bir sorum olacak hücre boşsa hata veriyor. boşsa çalışmasın yapabilirmiyim. birde devamını getirirken değiştirmem gereken yerleri işaretlemeniz mümkünmü. ( "birde isim listesi L sütununda 60. satırda bitmesine rağmen son satıra kadar puantajı işliyor." bu kısmı çözdüm)
 
Son düzenleme:
boşsa çalışmasın yanlış anlattım. boşsa diğer sütuna geçecek yoksa sonlanacak.
 
Bu kod şu mantıkta çalışıyor ;
ilk güne bakıyor (D4 satırı) diyor ki eğer tarih haftaiçi ise git C sütunun son satır sayısını tespit et ve bul (o da şu kodla oluyor Range("c" & Rows.Count).End(xlUp).Row ) ve döngüye başlayarak X koy, Cumartesi ise AT Pazar ise P koy yapıyor.

Boştan kastınız hangisinden bahsdiyorsunuz?
 
Eğer tarih alanı boş ise söylediğiniz ...

tarihkontrol = Range("q2").Value
tarih = Range("d4").Value
Dim SonSat As Long
SonSat = Range("c" & Rows.Count).End(xlUp).Row
If tarihkontrol = "" Then
Exit Sub
Else
If Weekday(tarih, vbMonday) = 1 Or Weekday(tarih, vbMonday) = 2 Or Weekday(tarih, vbMonday) = 3 Or Weekday(tarih, vbMonday) = 4 Or Weekday(tarih, vbMonday) = 5 Then
For i = 5 To SonSat
Range("d" & i).Value = "X"
Next i
Else
If Weekday(tarih, vbMonday) = 6 Then
For i = 5 To SonSat
Range("d" & i).Value = "AT"
Next i
Else
For i = 5 To SonSat
Range("d" & i).Value = "P"
Next i
End If
End If
End If

Bu kodu dener misiniz. Bu arada bende C sütununda isimlere göre kontrol yapıyor ve doğru olarak çalışıyor. Sizin son dosyanızı bilemiyorum.

Bir de dosyanız çok ağırlaşmış, bilgi taşımayan kolon ve bilgileri seçerek ( Örneğin BH:XFD aralığı ) sağ tuşlayıp sil diyin. Yine aynı şekilde satırlarıda yapın ve kaydedin dosyayı muıhtemelen çözülecektir.

Önerim çalışma sayfalarında bilgi taşımayın (Sehven silinmemesi amacıyla) Parametre diye bir sayfanız olsun kontrolleri burada yapın.
 
Hocam alakan için çok teşekkür ederim. Kontrol edeceğim uyardığınız noktalar içinde düzenleme yapacağım. Eğer makroyu sorunsuz çalıştırabilirsem baya bi yükten kurtulacağım.
 
Çok teşekkür ederim puantajın tamamını oluşturdum. Başka bir fikir alabilirmiyim. N6:AR155 aralığında sarı renkli hücrelere B yazabilirmiyim. kodun arasına ilave etme şansım varmı acaba. Tekrar çok teşekkür ederim.
 
Geri
Üst