- Katılım
- 11 Ağustos 2008
- Mesajlar
- 5,891
- Excel Vers. ve Dili
- Office 2013 Tr - Win10 x64
.
İçindekilerde satırı gizledikçe aşağıya doğru sayfa numaraları etkiliyordu. Bir kontrol daha ekledim.
.
İçindekilerde satırı gizledikçe aşağıya doğru sayfa numaraları etkiliyordu. Bir kontrol daha ekledim.
Kod:
Sub kod()
Dim DikeySay As Integer, YataySay As Integer, SayfaNo As Integer
Dim Dikey As VPageBreak, Yatay As HPageBreak
If ActiveSheet.PageSetup.PrintArea = "" Then
MsgBox "Yazdırma Alanı Belirlenmemiş", vbCritical
Exit Sub
End If
içindekiler_başlangıç = 123
içindekiler_bitiş = 251
içindekier_başlıklar = "D"
sayfa_no_sütunu = "R"
sayfalar_başlangıç = 252
sayfa_başlıklar = "A"
Rows(içindekiler_başlangıç & ":" & içindekiler_bitiş).EntireRow.Hidden = False
Range(Cells(123, sayfa_no_sütunu), Cells(içindekiler_bitiş, sayfa_no_sütunu)).ClearContents
ActiveWindow.View = xlPageBreakPreview
[COLOR="Indigo"]For i = içindekiler_başlangıç To Cells(içindekiler_bitiş [COLOR="Indigo"]+ 1[/COLOR], içindekier_başlıklar).End(3).Row
If IsError(Cells(i, içindekier_başlıklar)) Then
Rows(i).EntireRow.Hidden = True
GoTo sonraki
End If
If Cells(i, içindekier_başlıklar) = 0 Then
Rows(i).EntireRow.Hidden = True
GoTo sonraki
End If
If Cells(i, içindekier_başlıklar) = "" Then
Rows(i).EntireRow.Hidden = True
GoTo sonraki
End If
sonraki:
Next i
i = Empty[/COLOR]
For i = içindekiler_başlangıç To Cells(içindekiler_bitiş + 1, içindekier_başlıklar).End(3).Row
If Rows(i).EntireRow.Hidden = False Then
For a = sayfalar_başlangıç To Cells(Rows.Count, sayfa_başlıklar).End(3).Row
If Cells(i, içindekier_başlıklar) = Cells(a, sayfa_başlıklar) Then
If Rows(a).EntireRow.Hidden = True Then Rows(i).EntireRow.Hidden = True
sat = Cells(a, sayfa_başlıklar).Row
süt = Cells(a, sayfa_başlıklar).Column
If ActiveSheet.PageSetup.Order = xlDownThenOver Then
YataySay = ActiveSheet.HPageBreaks.Count + 1
DikeySay = 1
Else
DikeySay = ActiveSheet.VPageBreaks.Count + 1
YataySay = 1
End If
SayfaNo = 1
For Each Dikey In ActiveSheet.VPageBreaks
If Dikey.Location.Column > süt Then Exit For
SayfaNo = SayfaNo + YataySay
Next Dikey
For Each Yatay In ActiveSheet.HPageBreaks
If Yatay.Location.Row > sat Then Exit For
SayfaNo = SayfaNo + DikeySay
Next Yatay
Cells(i, sayfa_no_sütunu) = SayfaNo
Exit For
End If
Next a
End If
Next i
ActiveWindow.View = xlNormalView
MsgBox "B i t t i "
End Sub
.
