• DİKKAT

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

İki değer arası(17-22) karşılığında 1 yazdırmak

Katılım
8 Mart 2012
Mesajlar
4
Excel Vers. ve Dili
2007
Arkadaşlar merhaba, bir türlü çözemediğim bir sorunum var. Çalışma saatleri tablosu yapmaya çalışıyorum. İsimler ve karşılarında hangi saat aralıklarında çalıştıkları var(17-20 gibi ve aynı bu şekilde yazıyor) Diğer sayfamda ise saatler var. X kişisinde 17-20 yazdığında ikinci sayfadaki 17,18,19,20 başlıklı hücrelere 1 yazdırmak istiyorum. Altından kalkamadım bir türlü sizlerden yardım rica ediyorum.
 
Merhaba.
Saatler sayfası B2 hücresine aşağıdaki formülü uygulayın ve ardından sağa ve aşağı kopyalayın.
Kod:
=EĞER(VE(B$1>=0+SOLDAN(İNDİS(durum!$A$1:$B$4;KAÇINCI($A2;durum!$A$1:$A$4;0);2);BUL("-";İNDİS(durum!$A$1:$B$4;KAÇINCI($A2;durum!$A$1:$A$4;0);2);1)-1);B$1<=0+PARÇAAL(İNDİS(durum!$A$1:$B$4;KAÇINCI($A2;durum!$A$1:$A$4;0);2);BUL("-";İNDİS(durum!$A$1:$B$4;KAÇINCI($A2;durum!$A$1:$A$4;0);2);1)+1;2));"x";"")
 
Alternatif. Kod ile yazılmış hali,

Örnek dosya linki : http://dosya.web.tr/KBBoxK

veya sadece kodlar,

Kod:
Sub Düğme1_Tıklat()
On Error GoTo hata
Sheets("saatler").Select
For a = 2 To Sheets("durum").[A65536].End(xlUp).Row
Columns(1).Find(Sheets("durum").Cells(a, 1)).Select
b = Val(Mid(Sheets("durum").Cells(a, 2), 1, 2))
c = Val(Mid(Sheets("durum").Cells(a, 2), 4, 2))
If c > b Then
For d = b To c
ActiveCell.Offset(0, d) = "x"
Next d
ElseIf b > c Then
For e = b To 24
ActiveCell.Offset(0, e) = "x"
Next e
For f = 1 To c
ActiveCell.Offset(0, f) = "x"
Next f
End If
Next a
Exit Sub
hata:
MsgBox Sheets("durum").Cells(a, 1).Value & " bulunamadı."
End Sub
 
Geri
Üst