tabloda ardşık bilgiler için özet tablo oluşturma

Katılım
7 Haziran 2007
Mesajlar
2
Excel Vers. ve Dili
ofis2003
ustalar ;benim ekte sunduğum tabloda
aynı sayfada arda arda haftalık ürün satış rakamlarını özet bilgileirin toplayamadım.
örnek;b6-b20-b34-b38....b888.bu şekilde 14 satır aralıkla aynı değerleri
tek bir hücrede toplam değer formülü yapamadım.(yani her hafta için değişik )
toplanmasını istediğm hücreye gelip =topla(b6;b20;b34...b888)dedğimde bu fomül hata veriyor ve en fazla yedi adet satır toplanabilir diyor
bu konuda yardımlarınızı rica ediyorum.saygılar
 
Katılım
25 Nisan 2007
Mesajlar
459
Excel Vers. ve Dili
2007
Özet tabloda Çoklu birleştirme aralıkları'nı inceleyiniz bu şekilde ararsanız forumda örnekler vardır.

Sizin dosyanızda bir özet tablo hazırladım.
 
Katılım
7 Haziran 2007
Mesajlar
2
Excel Vers. ve Dili
ofis2003
hocam;ilgine teşekkürler fakat tablonun formatı bozulmadan bunu gerçekleştirmek mükün değil mi?.saygılar
 
Katılım
25 Nisan 2007
Mesajlar
459
Excel Vers. ve Dili
2007
hocam;ilgine teşekkürler fakat tablonun formatı bozulmadan bunu gerçekleştirmek mükün değil mi?.saygılar
Ekli dosyayı inceleyiniz.

Bu arada yaptığım kodu açıklayayım.

Aynı yapıda veri içeren 1.hafta - 2.hafta - .... 5.hafta adlı sayfalar yaptım.
Birde bunların toplanacağı ICMAL sayfası yaptım.
ICMAL sayfasının ACTIVATE olayına;

Kod:
Private Sub Worksheet_Activate()
Worksheets("Icmal").Range("b5:e16") = ""
For n = 1 To 5
Worksheets(n & ".hafta").Range("B5:E16").Copy
Worksheets("Icmal").Range("B5:E16").PasteSpecial Paste:=xlValues, Operation:=xlAdd, SkipBlanks:= _
        False, Transpose:=False
Next
Application.CutCopyMode = False
End Sub
kodunu yazdım.

Bu kod, 1 ile 5 .hafta arasınıda b5:e16'yı kopyalayıp,
içmal sayfasının b5:e16'sındaki toplamına ilave ediyor.

Özet Tabloya Alternatif kullanmak için çok hızlı bir yöntemdir.

Okuyan başka arkadaşlara da faydası dokunsun diye biraz daha detaya giricem :)

Örn. sayı içeren bir hücreyi kopyalayıp sayı içeren başka bir hücrenin üstünde mouse'yi sağ tuşlayıp açılan pencereden özel yapıştırı seçersek. Seçenekler arasından Değerleri ve Toplayı seçtiğimizde ; SAYI bulunan hücredeki sayının üstüne kopyalamasını yaptığımız sayıyı ilave eder. Özellikle birçok, Çoklu hücre aralıklarını tek bir yerde birleştirmede bu yöntem çok işimize yarar.

Tabi bunu makro içinde kullanmak için, Yeni makro kaydet ile manuel bir örnek yapıp, excelin otomatik olarak bir makro yazmasını sağlayıp içeriğine bakmak en pratik yoldur.

Örn. ben; araçlar | makro | yeni makro kaydet > enter ile manuel bir makro kaydediyorum. (bundan sonra yaptığım her işlem için otomatik makro yazılacak)

1. b20:b25 arasını mouse ile seçiyorum.
2. kopyalama yapıyorum
3. d20:25 arasını mouse ile seçiyorum.
4. özel yapıştır YAPIŞTIR:değerleri | İŞLEM:toplam'ı seçiyorum.
5. esc'ye basıyorum (kopyalanan hücrenin etrafında dönen çizgiden kurtulmak için)
6. makro kaydet penceresindeki KAYDI BİTİR tuşuna basıyorum.

daha sonra VBA penceresine geçip (alt+f11), modüllerin içinden yeni kayıt edilmiş modulu bulyorum. Doğru yaptıysanız şöyle birşey kayıt etti;

Kod:
Sub Makro3()
'
' Makro3 Makro
' Makro xxxxx tarafından 20.07.2007 tarihinde kaydedildi.
'

'
    Range("B20:B25").Select
    Selection.Copy
    Range("D20:d25").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlAdd, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False
End Sub
Yukarıdaki makroda hangi kodları kullanmak gerektiği mevcut.
Yanlız manuel olduğu için;
1. b20:b25 arasını seçili yap,
2. seçmi kopyala,
3.d20:d25 arasını seçiliyap
4. seçimi özel yapıştır
5. KesKopyala modunu inaktif yap

şeklinde bir kod oluştu. Halbuki doğru kod şöyle olmalıydı.

1.b20:b25 arasını kopyala
2.d20:d25 arasını özel yapıştır
3.KesKopyala modunu inaktif yap

fazladan 2 satır fazla koddan zarar gelmez. Ama aslen kod uzadıkça, gereksiz yere hücrelerden okuma, hücreleri seçili yapma, hücrelere gereksiz yazma kodları aşırı yavaşlığa sebep olacaktır. Bu yüzden doğru kullanarak yukarıdaki şekilde değiştirmek gerekir.

Sub Makro3()
'
' Makro3 Makro
' Makro xxxxx tarafından 20.07.2007 tarihinde kaydedildi.
'

'
Range("B20:B25").Copy
Range("D20:d25").PasteSpecial Paste:=xlValues, Operation:=xlAdd, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
End Sub

[/CODE]

Elimden geldiği kadar öğretici anlatmaya çalıştım umarım faydalı olur.

Saygılar.
 
Üst