• DİKKAT

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

Aylara göre icmal alma

Katılım
11 Temmuz 2010
Mesajlar
35
Excel Vers. ve Dili
2007
örnek dosyada hazırlamaya çalıştığım verilerin

Gelen Malzeme sayfasındaki irsaliye tarihlerine göre yıl ve aylara göre toplam alıp 2010, 2011, veya 2012 İCMAL sayfalarında geldiği yılın ilgili ayın sütununda yazdırabilirmiyiz?
 

Ekli dosyalar

İlginiz için teşekkür ediyorum.

Kod:
Private Sub CommandButton9_Click()

[COLOR="Red"]onay = [/COLOR]MsgBox("Gelen Mlazeme Sayfasındaki sütunları değiştirmek üzeresiniz!  .........
Başlangıçta çıkacak renklendirilmiş MsgBox'un "onay=" bölümünde hata veiyor.
 
3 nolu mesajdaki kodu yeniden yükledim deneyiniz.
 
ekli dosyaya bir bakınız.
 

Ekli dosyalar

bu kod hemi kısa hemde formülleri ve bütün toplamları otomatik yapıyor.

Sub aktar()
Dim say(12)
onay = MsgBox("Gelen Mlazeme Sayfasındaki sütunları değiştirmek üzeresiniz!" & Chr(10) & _
"Verileri Aktarmak İstiyormusunuz?", vbCritical + vbYesNo, "Dikkat !")
If onay = vbYes Then
Application.ScreenUpdating = False

For r = 2 To Worksheets("Gelen Malzeme").Cells(Rows.Count, "a").End(3).Row
For k = 1 To 12
say(k) = 0
Next k
For i = 7 To Sheets("Gelen Malzeme").Cells(1, Columns.Count).End(xlToLeft).Column + 1
Tarih = Val(Mid(Sheets("Gelen Malzeme").Cells(1, i).Value, 4, 2))
For j = 1 To 12
If Tarih = j Then
say(j) = say(j) + CDbl(Sheets("Gelen Malzeme").Cells(r, i).Value)
End If
Next j
Next i
deger = Sheets("2010 İCMAL").Cells(r + 1, 4).Value
Sheets("2010 İCMAL").Cells(r + 1, 1).Value = Sheets("Gelen Malzeme").Cells(r, 1).Value
Sheets("2010 İCMAL").Cells(r + 1, 2).Value = Sheets("Gelen Malzeme").Cells(r, 2).Value
Sheets("2010 İCMAL").Cells(r + 1, 3).Value = Sheets("Gelen Malzeme").Cells(r, 3).Value
Sheets("2010 İCMAL").Cells(r + 1, 5).Value = Sheets("2010 İCMAL").Cells(r + 1, 6).Value * deger
Sheets("2010 İCMAL").Cells(r + 1, 7).Value = Sheets("2010 İCMAL").Cells(r + 1, 6).Value - (say(2) + say(3) + say(4) + say(5) + say(6) + say(7) + say(8) + say(9) + say(10) + say(11) + say(12))
Sheets("2010 İCMAL").Cells(r + 1, 8).Value = say(1) + say(2) + say(3) + say(4) + say(5) + say(6) + say(7) + say(8) + say(9) + say(10) + say(11) + say(12)
son = 9
For n = 1 To 12
Sheets("2010 İCMAL").Cells(r + 1, son).Value = say(n)
Sheets("2010 İCMAL").Cells(r + 1, son + 1).Value = say(n) * deger
son = son + 2
Next n
Next r
son = 9
For i = 1 To 16
If i > 4 Then
Sheets("2010 İCMAL").Cells(1, son).Value = WorksheetFunction.Sum(Worksheets("2010 İCMAL").Range(Worksheets("2010 İCMAL").Cells(3, son + 1), Worksheets("2010 İCMAL").Cells(500, son + 1)))
son = son + 2
Else
Sheets("2010 İCMAL").Cells(1, 4 + i).Value = WorksheetFunction.Sum(Worksheets("2010 İCMAL").Range(Worksheets("2010 İCMAL").Cells(3, 4 + i), Worksheets("2010 İCMAL").Cells(500, 4 + i)))
End If
Next
MsgBox "işlem tamam"

Application.ScreenUpdating = True
End If

End Sub
 
teşekkür

halit bey emeğiniz için teşekkürler.

küçük bir sorun var.

2011 yılı için giriş yapıdığında verileri 2010 yılına ekliyor. bu kodları AnaSayfa dan B1 hücresine girişi yapılan ay ve yıla aktarabilirmiyiz.

İşlemi kısaltmak ve hataları önlemek için UserForm üzerindeki Sayfayı Aktar (CommandButon 9 )'a verileri aktardıktan sonra yapılacak ikinci bir komut olarak birleştirebilirmiyiz?
 
böylemi istiyorsunuz.

Sub aktar()
Sayfaadı = "2010 İCMAL"
deger = 0
For i = 1 To ActiveWorkbook.Sheets.Count
If Sheets(i).Name = Sayfaadı Then
deger = 1
End If
Next
If deger <> 1 Then
MsgBox "sayfa adı bulunamadı"
Exit Sub
End If
Dim say(12)
onay = MsgBox("Gelen Mlazeme Sayfasındaki sütunları değiştirmek üzeresiniz!" & Chr(10) & _
"Verileri Aktarmak İstiyormusunuz?", vbCritical + vbYesNo, "Dikkat !")
If onay = vbYes Then
Application.ScreenUpdating = False

For r = 2 To Worksheets("Gelen Malzeme").Cells(Rows.Count, "a").End(3).Row
For k = 1 To 12
say(k) = 0
Next k
For i = 7 To Sheets("Gelen Malzeme").Cells(1, Columns.Count).End(xlToLeft).Column + 1
Tarih = Val(Mid(Sheets("Gelen Malzeme").Cells(1, i).Value, 4, 2))
For j = 1 To 12
If Tarih = j Then
say(j) = say(j) + CDbl(Sheets("Gelen Malzeme").Cells(r, i).Value)
End If
Next j
Next i
deger = Sheets(Sayfaadı).Cells(r + 1, 4).Value
Sheets(Sayfaadı).Cells(r + 1, 1).Value = Sheets("Gelen Malzeme").Cells(r, 1).Value
Sheets(Sayfaadı).Cells(r + 1, 2).Value = Sheets("Gelen Malzeme").Cells(r, 2).Value
Sheets(Sayfaadı).Cells(r + 1, 3).Value = Sheets("Gelen Malzeme").Cells(r, 3).Value
Sheets(Sayfaadı).Cells(r + 1, 5).Value = Sheets(Sayfaadı).Cells(r + 1, 6).Value * deger
Sheets(Sayfaadı).Cells(r + 1, 7).Value = Sheets(Sayfaadı).Cells(r + 1, 6).Value - (say(2) + say(3) + say(4) + say(5) + say(6) + say(7) + say(8) + say(9) + say(10) + say(11) + say(12))
Sheets(Sayfaadı).Cells(r + 1, 8).Value = say(1) + say(2) + say(3) + say(4) + say(5) + say(6) + say(7) + say(8) + say(9) + say(10) + say(11) + say(12)
son = 9
For n = 1 To 12
Sheets(Sayfaadı).Cells(r + 1, son).Value = say(n)
Sheets(Sayfaadı).Cells(r + 1, son + 1).Value = say(n) * deger
son = son + 2
Next n
Next r
son = 9
For i = 1 To 16
If i > 4 Then
Sheets(Sayfaadı).Cells(1, son).Value = WorksheetFunction.Sum(Worksheets(Sayfaadı).Range(Worksheets(Sayfaadı).Cells(3, son + 1), Worksheets(Sayfaadı).Cells(500, son + 1)))
son = son + 2
Else
Sheets(Sayfaadı).Cells(1, 4 + i).Value = WorksheetFunction.Sum(Worksheets(Sayfaadı).Range(Worksheets(Sayfaadı).Cells(3, 4 + i), Worksheets(Sayfaadı).Cells(500, 4 + i)))
End If
Next
MsgBox "işlem tamam"

Application.ScreenUpdating = True
End If

End Sub
 
Galiba yanlış anlattım.

"E1" hücresine sayfa adı yazmayacağım sadece irsaliye tarihi yazıp UserForm üzerindeki Sayfayı Aktar butonu yardımıyla(Bu işlem için ComboBox'u kullanmıyorum) "Gelen Malzeme" sayfasına aktardığım malzeme miktarlarını ay ve yıllara göre gruplandırılmış toplamlarını ilgili yılın İCMAL sayfasına aktarmak. Son gönderdiğiniz kod ile sürekli "sayfa adı bulunamadı" iletisi alıyorum.
 
ekli dosyaya bir bakınız.
 

Ekli dosyalar

Sayfa seçme işi güzel olmuş ancak

bu yılın girişlerini 2010 İCMAL'e aktar deyip işlemi sorunsuz bir şekilde hallediyoruz.
2011 İCMAL'e aktar deyince daha önce 2010 İCMAL'e aktarılan verileri de aktarıyor dolayısıyla 2011 yılı için toplam gelen icmali görünüyor.

Eğer bu işlem uzun veya karmaşık bir kod gerektiriyorsa acaba "Gelen Malzeme" sayfasının yıl sonunda 2010 GELEN adı ile bir yedeğini alıp yeni yılda boş bir Gelen Malzeme sayfasından mı devam etsek daha kolay olur?
 
Sayfa seçme işi güzel olmuş ancak

bu yılın girişlerini 2010 İCMAL'e aktar deyip işlemi sorunsuz bir şekilde hallediyoruz.
2011 İCMAL'e aktar deyince daha önce 2010 İCMAL'e aktarılan verileri de aktarıyor dolayısıyla 2011 yılı için toplam gelen icmali görünüyor.

Eğer bu işlem uzun veya karmaşık bir kod gerektiriyorsa acaba "Gelen Malzeme" sayfasının yıl sonunda 2010 GELEN adı ile bir yedeğini alıp yeni yılda boş bir Gelen Malzeme sayfasından mı devam etsek daha kolay olur?

birşeyler yaptım ama inşallah karışmaz baya karışık oldu bende karıştırmaya başladım.
 

Ekli dosyalar

birşeyler yaptım ama inşallah karışmaz baya karışık oldu bende karıştırmaya başladım.

Halit bey emeğiniz için çok teşekkür ediyorum. Çok vakit ayırıp emek harcadınız fakat önceki mesajda söylediğim gibi yine 2011 yılında önceki yılın toplamını alıyor.

Bir ara konular arasında sayfa yedek alma gibi bir konu görmüştüm bir de o yolu denesem belki daha kolay olur. Sizi daha fazla meşgul etmek istemiyorum.

Tekrar çok teşekkür ediyorum.
 
userformdaki sayfaya aktar düğmesini kullanacaksın
 
Geri
Üst