Savoir quelle sera la dernière ligne imprimée

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Mishell
Le #18677241
J'ai besoin de le déterminer par VBA.

"Mishell" 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






isabelle
Le #18677231
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" 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












michdenis
Le #18677221
'------------------------------------------
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" 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
michdenis
Le #18677201
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
'---------------------------------------
michdenis
Le #18677191
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" 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
Mishell
Le #18680711
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" 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














Publicité
Poster une réponse
Anonyme