• DİKKAT

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

Girilen Verileri Raporlamak

Katılım
24 Haziran 2009
Mesajlar
99
Excel Vers. ve Dili
2003
Sayın uzmanlarımız "Korhan Ayhan ve Ferhat Pazarçevirdi" sayesinde yaklaşık 2 haftadır ektedi personel puantaj dosyasını hazırlamaya çalıştım.belirli bir seviyeye kadar gerekli olan kodları yazıp veri girişlerini başarı ile sağladım ( dediğim gibi bunu uzmanlarımız sayesinde yapabildim)

Yanlız bir noktadan sonra takıldım.dosya içerisinde de yaptığım işlemleri teker teker açıkladım. Benim isteğim girdiğim bu verileri raporlatmak.

bu raporlamayıda ana panel üzerine raporlama diye bir buton ekledim ve butona bastığımda karşıma bir pencere çıkıp buradan personel ismini girmek ve daha sonra raporlama almak istediğim 2 tarihi girerek o personel hakkındaki bilgileri raporlatmak istiyorum . normal excelde yapmaya kalksam süz1/süz2/süz3 gibi ama bunları kod olarak nasıl yaparım bilmiyorum.
yardımlarınızı bekliyorum
 
yardımcı olan yok galiba

uzmanlarımızdan yardım bekliyorum. programda kullanacağım kod formatı (süz) hakkında bilgi verseniz bile enazından kendim yapmak için uğraşırım.
 
yanıt

Kod:
Private Sub CommandButton1_Click()
Dim sat, s As Integer
        If ComboBox1 = "" Or ComboBox2 = "" Or ComboBox3 = "" Then
            MsgBox "Önce tüm kriterleri seçmelisiniz.", vbInformation
            Exit Sub: End If
Sheets("Rapor").[a2:l1000] = Empty
s = 2
    For sat = 2 To Cells(65536, "a").End(xlUp).Row
        If Cells(sat, "c") Like ComboBox1 And Cells(sat, "b") >= _
            CDate(ComboBox2) And Cells(sat, "b") <= CDate(ComboBox3) Then
            Range(Cells(sat, "a"), Cells(sat, "l")).Copy
            Sheets("Rapor").Cells(s, "a").PasteSpecial
            s = s + 1
        End If
    Next
    Application.CutCopyMode = False
  Sheets("Rapor").Activate
  Unload Me
End Sub
Private Sub UserForm_Initialize()
Dim sat, s, s1, s2 As Integer
ComboBox1.Clear
ComboBox2.Clear
ComboBox3.Clear
    For sat = 2 To Cells(65536, "a").End(xlUp).Row
        If Not WorksheetFunction.CountIf(Range("c2:c" & sat), Cells(sat, "c")) > 1 Then
            ComboBox1.AddItem
            ComboBox1.List(s, 0) = Cells(sat, "c")
            s = s + 1
        End If
        If Not WorksheetFunction.CountIf(Range("b2:b" & sat), Cells(sat, "b")) > 1 Then
            ComboBox2.AddItem
            ComboBox2.List(s1, 0) = Cells(sat, "b")
            s1 = s1 + 1
        End If
        If Not WorksheetFunction.CountIf(Range("b2:b" & sat), Cells(sat, "b")) > 1 Then
            ComboBox3.AddItem
            ComboBox3.List(s2, 0) = Cells(sat, "b")
            s2 = s2 + 1
        End If

    Next
End Sub
 

Ekli dosyalar

Emeğinize teşekkürler

sayın N.Ziya HİÇDURMAZ yardınlarınız için çok teşekkürler. EKlediğiniz dosyayı şimdi incelemeye başlıyorum. Çalışma sisiteminde herhalde sorun yok gibi tam istediğim gibi raporlama yapıyor.
ben şimdi yazdığınız kodlaarın nasıl çalıştığını çözmeye çalışacam eğer takıldığım yer olursa tekrar yardımlarınızı isteyecem.

EMEĞİNİZ İÇİN ÇOK TEŞEKKÜRLER. GERÇİ EL EMEĞİ TEŞEKKÜRLE ÖDENMEZ AMA NAPALIM ARTIK BURDA TEŞEKKÜRDEN BAŞKA BİRŞEY İLETEMİYORUZ SİZLERE.
 
saati 24:00 yazdığımda hata kodu veriyor

sayın N.ZİYA HİÇDURMAZ programda iş sonu bölümüne saati 24:00 yazdığımda hata komutu veriyor bu hata komutunu sadece 24:00 yazdığımda yapıyor. kodları yazarken buradaki formatı "hh:mm" şeklinde yazmıştım acaba bununla ilgili olabilirmi. ve ayrıca işbaşı ve iş sonu yazarken saat formatını tam yazmak gerekiyor. acaba ben sadece saat yazarken mesela 12: yazsam buradaki değeri otomatik olarak 12:00 algılatabilirmiyim
 
Zİya Bey

Sayın Ziya bey yazdığınız kodların nasıl çalıştığını çözmeye uğraştım ama bilgim yetersiz olduğu için hiçbir şey anlamadım. Eğer yazdığınız kodların nasıl çalıştığını anlatabilirseniz çok sevinirim.
mesela :

If COmbobox1="" Or Combobox2="" Or combobox3="" Then dediğinizde bu 3 comboboxtan birini doldurmamız yeterli galiba( Or bildiğim kadarıyla Veya anlamındaydı)

bunu sizden istememin sebebi yazılan kodu direkt olarak alıp yapıştırmak değilde nasıl çalıştığını öğrenmek. Bunu yapabilirsem eğer başka uygulamalarda enazından kendimde kodlar yazmaya çalışabileyim
 
saat formatını bu şekil deneyiniz
Cells(Satır, "E") = Format(TextBox3.Text, "00:00")
Cells(Satır, "F") = Format(TextBox4.Text, "00:00")
Cells(Satır, "G") = Format(TextBox5.Text, "00:00")

ComboBox ların herhangi birisi boş geçilirse uyarı alırız
 
sayın Ziya Bey

sayın Ziya bey sizden yazdığınız kodların açıklamasını istemiştim. eğer bu isteğim zor birşey ise lütfen kusura bakmayın. ama ben kodların çalışma şekillerini öğrenmek istiyorum.
rica etsem yazdığınız kodların açıklamalarını yazarmısınız.
 
sayın Ziya bey

saat için verdiğiniz formatı kullandım fakat bu seferde textbox5 teki saat bilgisini ben textbox4-textbox3 şeklinde girdiğim için hata mesajı veriyor. ayrıca bir önceki mesajımada bakarsanız sevinirim
 
Selamlar,

Toplam çalışma süresini hesaplamak için tarihide devreye sokmalısınız. Aksi halde sağlıklı sonuçlar alamazsınız.

Örnek olarak;

İş_Başı = 04.09.2009 16:00:00 şeklinde yazmalısınız.
İş_Sonu = 05.09.2009 00:00:00 şeklinde yazmalısınız. (Bu haliyle iş sonu 24:00 olarak yorumlanır.)
 
saat formatı

Sayın korhan bey
saati kod olarak yazarken daha önce hh:mm şeklinde yazmıştım.bunu nasıl değiştirmeliyim. Sizin dediğiniz şekilde veri girişi yapmak programı kullanırken zorluklar çıkartabilmekte. bu programı çalıştığım iş yerinde kullanmayı amaçladığım için sizin dediğiniz şekilde bir veri girişi biraz zor olacak . bilmiyorum ama saat formatında bir değişiklik yapmak sözkonusumudur. mesela excel hücre ayarlarından saat formatını seçerken bunu istediğmiz gibi yazabiliyoruz 00:00 veya
iş başı: 20:00
iş sonu: 31:00 yazdığımda
diğer hücrede çıkartma işlemi sorunsuz yapıp 11:00 yazıyor.
 
Selamlar,

Sn. Necdet bey aşağıdaki linkte konudan bahsetmiş. İncelermisiniz.

TARİH VE SAAT FONKSİYONLARININ DETAYLI ANALİZİ

Saat Farkını Bulma

Excel saati seri numara olarak tuttuğundan aynen tarih gibi, iki değer arasında toplama çıkartma işlemi yapılabilir. Ancak saat gösterimi negatif olduğunda Excel (##########) şeklinde gösterir. Negatif seri numarası desteklenmemektedir. 1904 tarih sistemi negatif seri numarasını destekler fakat çalışma sayfasında tarihler varsa hepsinin yanlış değerler aldığını görürsünüz.

Eğer negatif değer sizin için önemli değilse mutlak değeri kullanabilirsiniz. A1 başlangıç saati, B1 de bitiş saatini gösterirse ve değerler A1=08:00 ve B1=01:00 (başka bir deyişle ertesi günün saati) ise :

=MUTLAK(B1-A1)
=ABS(B1-A1)

Bu formül 07:00 değerini gösterir. Ama sanırım bu değer kimsenin işine yaramaz bu. Peki doğru sonucu nasıl hesaplattırmak gerekir?

=(B1+(B1<A1)-A1)

Yada

=MOD(B1-A1;1)

Formülleri size doğru sonucu verecektir. Yani sabah 08:00 da başlayan bir proje ertesi günü gece yarısı 01:00 da bitiyorsa arada geçen süre 17:00 saattir. Yukarıdaki iki formül de aynı sonucu verir.
 
Syn Korhan Bey

Syn Korhan bey verdiğiniz bilgiler için çok teşşekkürler.ayrıca verdiğiniz linki de inceledim ve kod bölümü

TextBox5.Text=Format(CDate(TextBox4)-CDate(TextBox3), "hh:mm")
böyleydi (saati Textbox4 te 24den büyük girince hata veriyor)

TextBox5.Text=Format(CDate(TextBox4)+(CDate(TextBox4)<CDate(TextBox3)) - CDate(TextBox3), "hh:mm") yani
=(B!+(B1<A1)-A1) şeklinde yazmaya çalıştım ve saati textbox4 de 25 olarak girdiğimde tekrar hata verdi
 
Geri
Üst