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
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
'------------------------------------------
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" <nospam@sympatico.ca> a écrit dans le message de groupe de discussion :
ua9t7P#jJHA.4132@TK2MSFTNGP04.phx.gbl...
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?
'------------------------------------------ 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
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 '---------------------------------------
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..."
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
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
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" <nospam@sympatico.ca> a écrit dans le message de groupe de discussion :
ua9t7P#jJHA.4132@TK2MSFTNGP04.phx.gbl...
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?
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
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
Merci beaucoup à vous deux.
Mishell
"isabelle" <i@v> wrote in message
news:OCgO2s%23jJHA.1252@TK2MSFTNGP03.phx.gbl...
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" <nospam@sympatico.ca> wrote in message
news:ua9t7P%23jJHA.4132@TK2MSFTNGP04.phx.gbl...
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?