• DİKKAT

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

Yardım aynı açıklamada tüm sayfalarda toplam

Katılım
11 Mayıs 2006
Mesajlar
94
Excel Vers. ve Dili
Microsoft Office 2010
Arkadaşlar aylık bir rapor çıkartıyorum bazen 50 sayfa olduğu oluyor ay sonu bunun icmalini yani toplamını almam gerekiyor , sayfa isimleri diğer firmalarda sıralamaya göre değişe biliyor bir formül yapıp sayfa isimlerini baz almadan tüm sayfada gördüğü isimleri toplayacak bir formüle ihtiyacım var detay ekteki tabloda bulunmakta
 
Son düzenleme:
. . .

Örneğin HANDLING değeri her sayfada her zaman 20. satırda mı.

. . .
 
. . .

Tablonuzda yeni bir sayfa ekleyip, aşağıdaki kodları çalıştırın.

Kod:
Sub KOD()
    
    Range("A1") = "Açıklama"
    Range("B1") = "TUTAR"
    Range("A3") = "HANDLING "
    Range("A5") = "GET USAGE+PAX TAX"
    Range("A7") = "HOTEL + HOTEL EKTRAS"
    Range("A9") = "CATERING"
    Range("A11") = "ADMINITRATION + SUPERVİSON"
    syf = ActiveSheet.Name
    
    
    For i = 1 To Sheets.Count
        If Sheets(i).Name <> syf Then
            
            For s = 1 To 50
                
                If Sheets(i).Cells(s, "A") = "HANDLING" Then
                    Range("B3") = Range("B3") + Sheets(i).Cells(s, "L")
                End If
                
                If Sheets(i).Cells(s, "A") = "GAT USAGE" And _
                    Sheets(i).Cells(s + 1, "A") = "PAX TAX" Then
                    Range("B5") = Range("B5") + Sheets(i).Cells(s, "L") + Sheets(i).Cells(s + 1, "L")
                End If
                
                If Sheets(i).Cells(s, "A") = "HOTEL" And _
                    Sheets(i).Cells(s + 1, "A") = "HOTEL EXTRAS" Then
                    Range("B7") = Range("B7") + Sheets(i).Cells(s, "L") + Sheets(i).Cells(s + 1, "L")
                End If
                
                If Sheets(i).Cells(s, "A") = "CATERING" Then
                    Range("B9") = Range("B9") + Sheets(i).Cells(s, "L")
                End If
                
                If Sheets(i).Cells(s, "A") = "ADMINISTRATION SURCHARGE" And _
                    Sheets(i).Cells(s + 2, "A") = "SUPERVISION" Then
                    Range("B11") = Range("B11") + Sheets(i).Cells(s, "L") + Sheets(i).Cells(s + 2, "L")
                End If
                
            Next s
        End If
    Next i
    
End Sub

. . .
 
yeni bir sayfa açtım tabloda makro oluştur dan makroyu kopyaladım kaydet dediğimde aşağıdaki mesajı veriyor

aşağıdaki özellikler makro içermeyen çalışma kitaplarına kaydedilemez
*VB projesi

makro olaylarını bilmiyorum biraz açıklamalı yazarsanız sevinirim
 
. . .

Office 2003 sürümünden sonra excelde bazı değişiklikler yapıldı.
Tablonuzda makro kullanacaksanız XLSM uzantılı ile kaydetmeniz gerekiyor.
Yani makro içerebilen excel çalışma kitabı.

XLSX formatında makroları çalıştırabilirsiniz ancak kaydettiğinizde VBA penceresine girilen kodları silerek kaydeder.

. . .
 
. . .

Office 2003 sürümünden sonra excelde bazı değişiklikler yapıldı.
Tablonuzda makro kullanacaksanız XLSM uzantılı ile kaydetmeniz gerekiyor.
Yani makro içerebilen excel çalışma kitabı.

XLSX formatında makroları çalıştırabilirsiniz ancak kaydettiğinizde VBA penceresine girilen kodları silerek kaydeder.

. . .


Teşekkürler bu şekilde çalıştırdım ,
bu makroya kendim bir satır ekledim sizin yaptığınızdan kopyalayarak
en sonunda ""ROUND" olan ama şu şekilde hata verdi nerde hata yaptık acaba !

hata mesajı compile error : next without for




Sub KOD()

Range("A1") = "Açıklama"
Range("B1") = "TUTAR"
Range("A3") = "HANDLING "
Range("A5") = "GET USAGE+PAX TAX"
Range("A7") = "HOTEL + HOTEL EKTRAS"
Range("A9") = "CATERING"
Range("A11") = "ADMINITRATION + SUPERVİSON"
Range("A15") = "ROUND"

syf = ActiveSheet.Name


For i = 1 To Sheets.Count
If Sheets(i).Name <> syf Then

For s = 1 To 50

If Sheets(i).Cells(s, "A") = "HANDLING" Then
Range("B3") = Range("B3") + Sheets(i).Cells(s, "L")
End If

If Sheets(i).Cells(s, "A") = "GAT USAGE" And _
Sheets(i).Cells(s + 1, "A") = "PAX TAX" Then
Range("B5") = Range("B5") + Sheets(i).Cells(s, "L") + Sheets(i).Cells(s + 1, "L")
End If

If Sheets(i).Cells(s, "A") = "HOTEL" And _
Sheets(i).Cells(s + 1, "A") = "HOTEL EXTRAS" Then
Range("B7") = Range("B7") + Sheets(i).Cells(s, "L") + Sheets(i).Cells(s + 1, "L")
End If

If Sheets(i).Cells(s, "A") = "CATERING" Then
Range("B9") = Range("B9") + Sheets(i).Cells(s, "L")
End If

If Sheets(i).Cells(s, "A") = "ADMINISTRATION SURCHARGE" And _
Sheets(i).Cells(s + 2, "A") = "SUPERVISION" Then
Range("B11") = Range("B11") + Sheets(i).Cells(s, "L") + Sheets(i).Cells(s + 2, "L")

If Sheets(i).Cells(s, "A") = "ROUND" Then
Range("B13") = Range("B13") + Sheets(i).Cells(s, "L")


End If

Next s
End If
Next i

End Sub
 
. . .

Hatalı çoğaltmışsınız. Şu şekilde deneyin.

Kod:
Sub KOD()
    
    Range("A1") = "Açıklama"
    Range("B1") = "TUTAR"
    Range("A3") = "HANDLING "
    Range("A5") = "GET USAGE+PAX TAX"
    Range("A7") = "HOTEL + HOTEL EKTRAS"
    Range("A9") = "CATERING"
    Range("A11") = "ADMINITRATION + SUPERVİSON"
[B]    Range("A13") = "ROUND"[/B]
    syf = ActiveSheet.Name
    
    
    For i = 1 To Sheets.Count
        If Sheets(i).Name <> syf Then
            
            For s = 1 To 50
                
                If Sheets(i).Cells(s, "A") = "HANDLING" Then
                    Range("B3") = Range("B3") + Sheets(i).Cells(s, "L")
                End If
                
                If Sheets(i).Cells(s, "A") = "GAT USAGE" And _
                    Sheets(i).Cells(s + 1, "A") = "PAX TAX" Then
                    Range("B5") = Range("B5") + Sheets(i).Cells(s, "L") + Sheets(i).Cells(s + 1, "L")
                End If
                
                If Sheets(i).Cells(s, "A") = "HOTEL" And _
                    Sheets(i).Cells(s + 1, "A") = "HOTEL EXTRAS" Then
                    Range("B7") = Range("B7") + Sheets(i).Cells(s, "L") + Sheets(i).Cells(s + 1, "L")
                End If
                
                If Sheets(i).Cells(s, "A") = "CATERING" Then
                    Range("B9") = Range("B9") + Sheets(i).Cells(s, "L")
                End If
                
                If Sheets(i).Cells(s, "A") = "ADMINISTRATION SURCHARGE" And _
                    Sheets(i).Cells(s + 2, "A") = "SUPERVISION" Then
                    Range("B11") = Range("B11") + Sheets(i).Cells(s, "L") + Sheets(i).Cells(s + 2, "L")
                [B]End If[/B]
                
           [B]     If Sheets(i).Cells(s, "A") = "ROUND" Then
                    Range("B13") = Range("B13") + Sheets(i).Cells(s, "L")
                End If[/B]

            Next s
        End If
    Next i
    
End Sub

. . .
 
teşekkürler
 
Geri
Üst