Уважаемые гуру. Подскажите, можно ли решить данную проблемку. Имеется лист с остатками товара и хотелось бы иметь на каждой страницы постраничный итог, а уж совсем хорошо, если бы этот постраничный итог печатался бы не в ячейке (как сейчас), а в колонтитуле (на форуме была похожая тема о печати каких-либо результатов в колонтитулах). Я предполагал использовать для расчетов функцию СЧЕТЕСЛИМН, но она требует, скажем так, "контрольных ячеек" и вот эти самые ячейки я бы и хотел вычислить. На просторах сети я нашел макрос:
Public Sub PageNumner()
Dim VPB As Excel.VPageBreak
Dim HPB As Excel.HPageBreak
Dim intVPBC As Integer
Dim intHPPC As Integer
Dim lngPage As Long
lngPage = 1
If ActiveSheet.PageSetup.Order = xlDownThenOver Then
intHPPC = ActiveSheet.HPageBreaks.Count + 1
intVPBC = 1
Else
intVPBC = ActiveSheet.VPageBreaks.Count + 1
intHPPC = 1
End If
For Each VPB In ActiveSheet.VPageBreaks
If VPB.Location.Column > ActiveCell.Column Then
Exit For
End If
lngPage = lngPage + intHPPC
Next VPB
For Each HPB In ActiveSheet.HPageBreaks
If HPB.Location.Row > ActiveCell.Row Then
Exit For
End If
lngPage = lngPage + intVPBC
Next HPB
MsgBox "Номер страницы активной ячейки = " & lngPage
End Sub
который правильно и корректно вычисляет номер страницы активной ячейки. MsgBox с сообщением мне не нужен, а вот как если мне подсказали как присвоить диапазону I10:I39 (в примере) значения вычисленные вышеописаной функцией, все было бы замечательно. Сейчас значения "контрольных ячеек" забиты вручную и на 2-3 страницы это несложно, но если бы таких страниц было 100 или 500, неужели бы этот момент нельзя было бы решить по иному? Говоря покороче, как помощью макроса, который будет включаться по какому-либо событию или каким-либо "постоянным" образом через VBA или формулами (устроит любой способ) получать значения "контрольных ячеек", в данном примере диапазона I10:I39? Заранее большое спасибо всем откликнувшимся.
Public Sub PageNumner()
Dim VPB As Excel.VPageBreak
Dim HPB As Excel.HPageBreak
Dim intVPBC As Integer
Dim intHPPC As Integer
Dim lngPage As Long
lngPage = 1
If ActiveSheet.PageSetup.Order = xlDownThenOver Then
intHPPC = ActiveSheet.HPageBreaks.Count + 1
intVPBC = 1
Else
intVPBC = ActiveSheet.VPageBreaks.Count + 1
intHPPC = 1
End If
For Each VPB In ActiveSheet.VPageBreaks
If VPB.Location.Column > ActiveCell.Column Then
Exit For
End If
lngPage = lngPage + intHPPC
Next VPB
For Each HPB In ActiveSheet.HPageBreaks
If HPB.Location.Row > ActiveCell.Row Then
Exit For
End If
lngPage = lngPage + intVPBC
Next HPB
MsgBox "Номер страницы активной ячейки = " & lngPage
End Sub
который правильно и корректно вычисляет номер страницы активной ячейки. MsgBox с сообщением мне не нужен, а вот как если мне подсказали как присвоить диапазону I10:I39 (в примере) значения вычисленные вышеописаной функцией, все было бы замечательно. Сейчас значения "контрольных ячеек" забиты вручную и на 2-3 страницы это несложно, но если бы таких страниц было 100 или 500, неужели бы этот момент нельзя было бы решить по иному? Говоря покороче, как помощью макроса, который будет включаться по какому-либо событию или каким-либо "постоянным" образом через VBA или формулами (устроит любой способ) получать значения "контрольных ячеек", в данном примере диапазона I10:I39? Заранее большое спасибо всем откликнувшимся.