Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Savoir quelle sera la dernière ligne imprimée

6 réponses
Avatar
Mishell
Bonjour.

Y a-t-il une manière de déterminer quelle sera la dernière ligne imprimée
sur la première page pour un tableau qui s'imprimera sur plus d'une page?


Merci

Mishell

6 réponses

Avatar
Mishell
J'ai besoin de le déterminer par VBA.

"Mishell" wrote in message
news:ua9t7P%
Bonjour.

Y a-t-il une manière de déterminer quelle sera la dernière ligne imprimée
sur la première page pour un tableau qui s'imprimera sur plus d'une page?


Merci

Mishell






Avatar
isabelle
bonjour Mishell,

x = Worksheets(1).HPageBreaks(1).Location.Cells.Row - 1

isabelle

Mishell a écrit :
J'ai besoin de le déterminer par VBA.

"Mishell" wrote in message
news:ua9t7P%

Bonjour.

Y a-t-il une manière de déterminer quelle sera la dernière ligne imprimée
sur la première page pour un tableau qui s'imprimera sur plus d'une page?


Merci

Mishell












Avatar
michdenis
'------------------------------------------
Sub test()
Dim A As Integer, X As Integer
Dim Ligne As String, colonne As String
With Feuil1
X = .HPageBreaks.Count
Ligne = 1 & ", "
For A = 1 To X
DoEvents
Ligne = Ligne & .HPageBreaks(A).Location.Row & ", "
Next
X = .VPageBreaks.Count
colonne = 1 & ", "
For A = 1 To X
DoEvents
colonne = colonne & .VPageBreaks(A).Location.Column & ", "
Next
End With
If Ligne <> "" Then
Ligne = Left(Ligne, Len(Ligne) - 2)
Message = Message & "Chaque page verticale se débutera aux lignes : " _
& Ligne & vbCrLf & vbCrLf
End If
If colonne <> "" Then
colonne = Left(colonne, Len(colonne) - 2)
Message = Message & "Chaque page verticale débutera aux colonnes : " & _
colonne
End If
MsgBox Message, vbInformation + vbOKOnly, "Attention..."

End Sub
'------------------------------------------





"Mishell" a écrit dans le message de groupe de discussion :
ua9t7P#
Bonjour.

Y a-t-il une manière de déterminer quelle sera la dernière ligne imprimée
sur la première page pour un tableau qui s'imprimera sur plus d'une page?


Merci

Mishell
Avatar
michdenis
Afin de s'assurer que l'on obtienne le résultat escompté,
on doit sélectionner une cellule sur la dernière ligne
de la plage occupée... comme si cela aidait à excel
à évaluer la plage de cellules concernées.

Correction apportée à la macro :

'---------------------------------------
Sub test()
Dim A As Integer, X As Integer
Dim Ligne As String, colonne As String
On Error Resume Next
With Feuil1
.Select
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
.Range("A" & DerLig).Activate
X = .HPageBreaks.Count
Ligne = 1 & ", "
For A = 1 To X
Ligne = Ligne & .HPageBreaks(A).Location.Row & ", "
Next
X = .VPageBreaks.Count
colonne = 1 & ", "
For A = 1 To X
colonne = colonne & .VPageBreaks(A).Location.Column & ", "
Next

End With
If Ligne <> "" Then
Ligne = Left(Ligne, Len(Ligne) - 2)
Message = Message & "Chaque page verticale se débutera aux lignes : " _
& Ligne & vbCrLf & vbCrLf
End If
If colonne <> "" Then
colonne = Left(colonne, Len(colonne) - 2)
Message = Message & "Chaque page verticale débutera aux colonnes : " & _
colonne
End If
Feuil1.Range("a1").Select
MsgBox Message, vbInformation + vbOKOnly, "Attention..."

End Sub
'---------------------------------------
Avatar
michdenis
Lorsque la plage de cellules est importante, on doit sélectionner
une cellule sur la "dernière" ligne de la plage et sur la dernière
colonne de la plage selon qu'on détermine les sauts de page
verticaux ou horizontaux. Comme si cela aidait l'application
à déterminer l'étendue de la feuille concernée. À défaut de
quoi, excel éprouve de la difficulté à évaluer tous les sauts
de page.

'-----------------------------------------
Sub test()
Dim A As Integer, X As Integer
Dim Ligne As String, colonne As String
Dim DerLig As Long, DerCol As Integer
On Error Resume Next
With Feuil1
.Select
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
.Range("A" & DerLig).Activate
X = .HPageBreaks.Count
Ligne = 1 & ", "
For A = 1 To X
Ligne = Ligne & .HPageBreaks(A).Location.Row & ", "
Next
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
.Cells(1, DerCol).Select
X = .VPageBreaks.Count
colonne = 1 & ", "
For A = 1 To X
colonne = colonne & .VPageBreaks(A).Location.Column & ", "
Next

End With
If Ligne <> "" Then
Ligne = Left(Ligne, Len(Ligne) - 2)
Message = Message & "Chaque page verticale se débutera aux lignes : " _
& Ligne & vbCrLf & vbCrLf
End If
If colonne <> "" Then
colonne = Left(colonne, Len(colonne) - 2)
Message = Message & "Chaque page verticale débutera aux colonnes : " & _
colonne
End If
Feuil1.Range("a1").Select
MsgBox Message, vbInformation + vbOKOnly, "Attention..."

End Sub
'-----------------------------------------



"Mishell" a écrit dans le message de groupe de discussion :
ua9t7P#
Bonjour.

Y a-t-il une manière de déterminer quelle sera la dernière ligne imprimée
sur la première page pour un tableau qui s'imprimera sur plus d'une page?


Merci

Mishell
Avatar
Mishell
Merci beaucoup à vous deux.

Mishell

"isabelle" wrote in message
news:OCgO2s%
bonjour Mishell,

x = Worksheets(1).HPageBreaks(1).Location.Cells.Row - 1

isabelle

Mishell a écrit :
J'ai besoin de le déterminer par VBA.

"Mishell" wrote in message
news:ua9t7P%

Bonjour.

Y a-t-il une manière de déterminer quelle sera la dernière ligne
imprimée sur la première page pour un tableau qui s'imprimera sur plus
d'une page?


Merci

Mishell