Excel De Her Sayfada Yinelenen Kısımdaki Hücreye (k5) Sayfa Sayısı Ekleme

17/08/2021, 13:32

Vahap5244

Arkadaşlar merhaba.
Ekteki tabloda her sayfada yinelenen kısımdaki hücreye (k5) sayfa sayısı ve sayfa toplamı verecek formül yada Vba fonsiyonları var mı?Yardım eden olursa çok sevinirim.
Abdulvahap GÜNEŞ
18/08/2021, 12:35

boolean_

Merhaba @Vahap5244,

ilgili sayfanın Vba koduna aşağıdaki kodu yapıştırın ve deneyin. Sayfa kodu alanına yapıştırın. Sayfa sayımı için sayfa sonuna kadar bir kez inmeniz gerekir.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim say As Integer
    Dim sayi As Integer
    Dim adr As VPageBreak
    Dim hcr As HPageBreak
    Dim ilkSNo As Integer
    sayi = 1
    say = 1
    If ActiveSheet.PageSetup.Order = xlDownThenOver Then
        sayi = ActiveSheet.HPageBreaks.Count + 1
    Else
        say = ActiveSheet.VPageBreaks.Count + 1
    End If
    ilkSNo = 1
    For Each adr In ActiveSheet.VPageBreaks
        If adr.Location.Column > ActiveCell.Column Then Exit For
        ilkSNo = ilkSNo + sayi
    Next
    For Each hcr In ActiveSheet.HPageBreaks
        If hcr.Location.Row > ActiveCell.Row Then Exit For
        ilkSNo = ilkSNo + say
    Next
    Range("K5").NumberFormat = "@"
    Range("K5") = ilkSNo & " / " & Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
End Sub
18/08/2021, 13:22

Vahap5244

(18/08/2021, 12:35)boolean_ yazdı: Merhaba @Vahap5244,

ilgili sayfanın Vba koduna aşağıdaki kodu yapıştırın ve deneyin. Sayfa kodu alanına yapıştırın. Sayfa sayımı için sayfa sonuna kadar bir kez inmeniz gerekir.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim say As Integer
    Dim sayi As Integer
    Dim adr As VPageBreak
    Dim hcr As HPageBreak
    Dim ilkSNo As Integer
    sayi = 1
    say = 1
    If ActiveSheet.PageSetup.Order = xlDownThenOver Then
        sayi = ActiveSheet.HPageBreaks.Count + 1
    Else
        say = ActiveSheet.VPageBreaks.Count + 1
    End If
    ilkSNo = 1
    For Each adr In ActiveSheet.VPageBreaks
        If adr.Location.Column > ActiveCell.Column Then Exit For
        ilkSNo = ilkSNo + sayi
    Next
    For Each hcr In ActiveSheet.HPageBreaks
        If hcr.Location.Row > ActiveCell.Row Then Exit For
        ilkSNo = ilkSNo + say
    Next
    Range("K5").NumberFormat = "@"
    Range("K5") = ilkSNo & " / " & Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
End Sub






18/08/2021, 13:29

Vahap5244

Merhaba Boolean Hocam. Ellerinize sağlık. Dediğinizi yaptım. Kodu sayfaya kopyaladım. Sonra son sayfaya kadar indim. Hücre sayfa sayısı ve toplam çıktı ancak yazdırırken bütün sayfalarda 1/5 şeklinde yazdırıyor. diğer sayfa numaralarını değiştirmiyor. Bunu nasıl yapabilirim? Teşekkür ederim.
18/08/2021, 14:48

Vahap5244

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim say As Integer
    Dim sayi As Integer
    Dim adr As VPageBreak
    Dim hcr As HPageBreak
    Dim ilkSNo As Integer
    sayi = 1
    say = 1
    If ActiveSheet.PageSetup.Order = xlDownThenOver Then
       
PHP Kod:
sayi ActiveSheet.HPageBreaks.Count 

    Else
        say = ActiveSheet.VPageBreaks.Count + 1
    End If
    ilkSNo = 1
    For Each adr In ActiveSheet.VPageBreaks
        If adr.Location.Column > ActiveCell.Column Then Exit For
        ilkSNo = ilkSNo + sayi
    Next
    For Each hcr In ActiveSheet.HPageBreaks
        If hcr.Location.Row > ActiveCell.Row Then Exit For
        ilkSNo = ilkSNo + say
    Next
    Range("AK11").NumberFormat = "@"
    Range("AK11") = ilkSNo & " / " & Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
End Sub




İşaretli kodda hata veriyor.