• DİKKAT

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

Rapor oluşturma hk.

Katılım
7 Kasım 2005
Mesajlar
505
Excel Vers. ve Dili
Office 365 TR-64
Günaydın arkadaşlar,

ekte yer alan dosyanın puantaj sekmesinde yer alan verilerin rapor sekmesinde belirttiğim şekilde raporlanmasını istiyorum. Manuel olarak işlem çok uzun zaman alacağı için makro vb. bir yöntemle sizlerin bunu çözebileceğini düşünüyorum. Rapor sekmesinde ben sadece 1 sicilin raporunu örnek olarak yaptım. diğer tüm sicillerin bu sicilin devamında aynı sütunda raporlanması gerekiyor.

Amacımız, elde edilen verileri başka bir programa export etmek.

Yapabilirseniz beni büyük bir yükten kurtaracaksınız.


Şimdiden teşekkürler.
 

Ekli dosyalar

Merhaba;
Ofis 2003 kullandığım için satır sayısı 65536 ile sınırlı.
Ekli dosyada puantaj sayfası A1 hücresindeki rakamı 1048576 yazarak deneyin.
İyi çalışmalar.
 

Ekli dosyalar

Allah razı olsun sizden. doğruluğunu ve sisteme uygunluğunu kontrol edip sizi tekrar rahatsız edebilirmiyim. Çokkkkkkk teşekkürler.
 
rapor hk.

Raporda kırmızı ile işaretlediğim mükerrer tarihler var. Sanırım bununla ilgili olacak ki mart 2016 ayına ait veriler de var. veri tablom şubat 2016 sonuna kadar idi.

Tekrar bakabilirmisiniz.
 

Ekli dosyalar

Merhaba;
Aslında tablonun düzenlemesi ile ilgili bir sıkıntı var.
Yani her ay için 31 gün tanımlaması doğru değil.
Bu nedenle tabloda her ayın gün sayısına göre döngü kurmak , sıfır olan değerlere ait veriyi yazdırmamak daha mantıklı. (Böylece tarih hatasının önüne geçilir.)
Şöyleki şubat 28 de normalde ay bitiyor. Ama 29 ,30,31. günde sıfırda olsa veri olduğu için tarih fonksiyonu 29. günü 1 marta çekiyor.
Ekteki uygulama doğru sonuç verecektir.
Eki deneyin ve kontrol edin. Sorun varsa bakalım.
İyi çalışmalar.
 

Ekli dosyalar

Değeri sıfır olan hücreleri dikkate almamışsınız. Gereği de yoktu zaten. Çok çok teşekkür ediyorum. Bu güne kadar sayenizde bir çok hammaliye yükünden kurtuldum. iyiki varsnız.


Saygılarımla,

Kolay gelsin.
 
Merhaba,
muygun Arkadaşım sorunuza cevap vermiş ben de dizi olarak bir kod yazayım dedim.

Kod:
Sub listele()
Dim a(), b(), S1 As Worksheet, S2 As Worksheet
Dim i As Long, Say As Long, y As Integer
Dim Ay_Sonu As Byte, t As Double
t = Timer
Application.ScreenUpdating = False
Set S1 = Sheets("puantaj")
Set S2 = Sheets("rapor")
a = S1.Range("C3:AN" & S1.Cells(Rows.Count, 3).End(xlUp).Row)
ReDim b(1 To Application.CountA(a), 1 To 3)
    For i = 1 To UBound(a)
        Ay_Sonu = Day(DateSerial(Year(a(i, 1)), Month(a(i, 1)) + 1, 1) - 1)
        For y = 1 To Ay_Sonu
            If a(i, y + 7) > 0 Then
                Say = Say + 1
                b(Say, 1) = DateSerial(Year(a(i, 1)), Month(a(i, 1)), y)
                b(Say, 2) = a(i, 2)
                b(Say, 3) = a(i, y + 7)
            End If
        Next y
    Next i
S2.Range("A2:C" & Rows.Count).ClearContents
If Say > 0 Then
    S2.Range("A2").Resize(Say).NumberFormat = "dd.mm.yyyy"
    S2.Range("A2").Resize(Say, 3) = b
End If
S2.Select
Application.ScreenUpdating = True
MsgBox "İşleminiz Tamalanmıştır." & vbLf & vbLf & "İşlem Süreniz : " & Format(Timer - t, "0.00"), vbInformation
End Sub
 

Ekli dosyalar

:) muygun ve ziynettin Bey'ler harikasınız. İlgi alakanızdan dolayı çok teşekkür ederim. Kalın sağlıcakla.
 

Ekli dosyalar

Son düzenleme:
Geri
Üst