Bonjour à tous,
J'ai une feuille sur laquelle il n'y a que des images
Je voudrais INSERER un saut de page avant l'image si celle-ci est sur
2 pages.
-->13 en l'occurence (shapes)
Toutes mes lignes ont une hauteur de 12.75 points
et pagesetup.topmargin B points
quand je laisse les sauts de page automatiques il se trouvent en
lignes 93,185,277,369,461,553.
image 1 top = 0 height = 782.25
image 2 top = 820.5 height b4.75
image 3 top = 1483.5 height A1.75 etc...
Bien sur la taille des images peux varier mais chaque image est
séparée par 38.25 points
je dois donc comparer (Image.Top + Image.Height) à
HPageBreak(1).Location.Cells.Row*12.75
Quelqu'un aurait 'il cela en magasin ;-))) ???
Bonjour à tous,
J'ai une feuille sur laquelle il n'y a que des images
Je voudrais INSERER un saut de page avant l'image si celle-ci est sur
2 pages.
-->13 en l'occurence (shapes)
Toutes mes lignes ont une hauteur de 12.75 points
et pagesetup.topmargin B points
quand je laisse les sauts de page automatiques il se trouvent en
lignes 93,185,277,369,461,553.
image 1 top = 0 height = 782.25
image 2 top = 820.5 height b4.75
image 3 top = 1483.5 height A1.75 etc...
Bien sur la taille des images peux varier mais chaque image est
séparée par 38.25 points
je dois donc comparer (Image.Top + Image.Height) à
HPageBreak(1).Location.Cells.Row*12.75
Quelqu'un aurait 'il cela en magasin ;-))) ???
Bonjour à tous,
J'ai une feuille sur laquelle il n'y a que des images
Je voudrais INSERER un saut de page avant l'image si celle-ci est sur
2 pages.
-->13 en l'occurence (shapes)
Toutes mes lignes ont une hauteur de 12.75 points
et pagesetup.topmargin B points
quand je laisse les sauts de page automatiques il se trouvent en
lignes 93,185,277,369,461,553.
image 1 top = 0 height = 782.25
image 2 top = 820.5 height b4.75
image 3 top = 1483.5 height A1.75 etc...
Bien sur la taille des images peux varier mais chaque image est
séparée par 38.25 points
je dois donc comparer (Image.Top + Image.Height) à
HPageBreak(1).Location.Cells.Row*12.75
Quelqu'un aurait 'il cela en magasin ;-))) ???
Légère correction de la première section de la procédure :
'----------------------------
Sub IntercepterChevauchement_Image_PageBreaks()
Dim Rg As Range, Sh As Shape, F As Worksheet
Dim A As Integer, B As Integer
Set F = Worksheets("Feuil1")
For Each Sh In F.Shapes
If TypeName(Sh.OLEFormat.Object) = "Picture" Then
Set Rg = Range(Sh.BottomRightCell, Sh.TopLeftCell)
A = NumeroPage(Rg(1, 1))
B = NumeroPage(Rg(Rg.Rows.Count, Rg.Columns.Count))
If A + B > 0 And A <> B Then
MsgBox "L'image """ & Sh.Name & """ chevauchera " & _
"à l'impression, " & vbCrLf & " les pages " & _
A & " et " & B & " de la feuille """ & F.Name & _
""".", vbInformation + vbOKOnly, "Attention"
End If
End If
Next
End Sub
'----------------------------
Function NumeroPage(Cellule As Range) As Integer
'Crée par : L Longre, mpfe
Dim VPC As Integer, HPC As Integer
Dim VPB As VPageBreak, HPB As HPageBreak
Dim Wksht As Worksheet
Dim Col As Integer, Ligne As Long
Set Wksht = Cellule.Worksheet
Ligne = Cellule.Row
Col = Cellule.Column
If Wksht.PageSetup.Order = xlDownThenOver Then
HPC = Wksht.HPageBreaks.Count + 1
VPC = 1
Else
VPC = Wksht.VPageBreaks.Count + 1
HPC = 1
End If
NumeroPage = 1
For Each VPB In Wksht.VPageBreaks
If VPB.Location.Column > Col Then Exit For
NumeroPage = NumeroPage + HPC
Next VPB
For Each HPB In Wksht.HPageBreaks
If HPB.Location.Row > Ligne Then Exit For
NumeroPage = NumeroPage + VPC
Next HPB
End Function
'--------------------------------------
Salutations!
"Oliv'" <(supprimerceci) a écrit dans le
message de news: Ohv7% Bonjour à
tous,
J'ai une feuille sur laquelle il n'y a que des images
Je voudrais INSERER un saut de page avant l'image si celle-ci est sur
2
pages.
-->13 en l'occurence (shapes)
Toutes mes lignes ont une hauteur de 12.75 points
et pagesetup.topmargin B points
quand je laisse les sauts de page automatiques il se trouvent en
lignes 93,185,277,369,461,553.
image 1 top = 0 height = 782.25
image 2 top = 820.5 height b4.75
image 3 top = 1483.5 height A1.75 etc...
Bien sur la taille des images peux varier mais chaque image est
séparée par
38.25 points
je dois donc comparer (Image.Top + Image.Height) à
HPageBreak(1).Location.Cells.Row*12.75
Quelqu'un aurait 'il cela en magasin ;-))) ???
Légère correction de la première section de la procédure :
'----------------------------
Sub IntercepterChevauchement_Image_PageBreaks()
Dim Rg As Range, Sh As Shape, F As Worksheet
Dim A As Integer, B As Integer
Set F = Worksheets("Feuil1")
For Each Sh In F.Shapes
If TypeName(Sh.OLEFormat.Object) = "Picture" Then
Set Rg = Range(Sh.BottomRightCell, Sh.TopLeftCell)
A = NumeroPage(Rg(1, 1))
B = NumeroPage(Rg(Rg.Rows.Count, Rg.Columns.Count))
If A + B > 0 And A <> B Then
MsgBox "L'image """ & Sh.Name & """ chevauchera " & _
"à l'impression, " & vbCrLf & " les pages " & _
A & " et " & B & " de la feuille """ & F.Name & _
""".", vbInformation + vbOKOnly, "Attention"
End If
End If
Next
End Sub
'----------------------------
Function NumeroPage(Cellule As Range) As Integer
'Crée par : L Longre, mpfe
Dim VPC As Integer, HPC As Integer
Dim VPB As VPageBreak, HPB As HPageBreak
Dim Wksht As Worksheet
Dim Col As Integer, Ligne As Long
Set Wksht = Cellule.Worksheet
Ligne = Cellule.Row
Col = Cellule.Column
If Wksht.PageSetup.Order = xlDownThenOver Then
HPC = Wksht.HPageBreaks.Count + 1
VPC = 1
Else
VPC = Wksht.VPageBreaks.Count + 1
HPC = 1
End If
NumeroPage = 1
For Each VPB In Wksht.VPageBreaks
If VPB.Location.Column > Col Then Exit For
NumeroPage = NumeroPage + HPC
Next VPB
For Each HPB In Wksht.HPageBreaks
If HPB.Location.Row > Ligne Then Exit For
NumeroPage = NumeroPage + VPC
Next HPB
End Function
'--------------------------------------
Salutations!
"Oliv'" <(supprimerceci)catteau@ricour-assurances.fr> a écrit dans le
message de news: Ohv7%23Yl1FHA.3924@TK2MSFTNGP14.phx.gbl... Bonjour à
tous,
J'ai une feuille sur laquelle il n'y a que des images
Je voudrais INSERER un saut de page avant l'image si celle-ci est sur
2
pages.
-->13 en l'occurence (shapes)
Toutes mes lignes ont une hauteur de 12.75 points
et pagesetup.topmargin B points
quand je laisse les sauts de page automatiques il se trouvent en
lignes 93,185,277,369,461,553.
image 1 top = 0 height = 782.25
image 2 top = 820.5 height b4.75
image 3 top = 1483.5 height A1.75 etc...
Bien sur la taille des images peux varier mais chaque image est
séparée par
38.25 points
je dois donc comparer (Image.Top + Image.Height) à
HPageBreak(1).Location.Cells.Row*12.75
Quelqu'un aurait 'il cela en magasin ;-))) ???
Légère correction de la première section de la procédure :
'----------------------------
Sub IntercepterChevauchement_Image_PageBreaks()
Dim Rg As Range, Sh As Shape, F As Worksheet
Dim A As Integer, B As Integer
Set F = Worksheets("Feuil1")
For Each Sh In F.Shapes
If TypeName(Sh.OLEFormat.Object) = "Picture" Then
Set Rg = Range(Sh.BottomRightCell, Sh.TopLeftCell)
A = NumeroPage(Rg(1, 1))
B = NumeroPage(Rg(Rg.Rows.Count, Rg.Columns.Count))
If A + B > 0 And A <> B Then
MsgBox "L'image """ & Sh.Name & """ chevauchera " & _
"à l'impression, " & vbCrLf & " les pages " & _
A & " et " & B & " de la feuille """ & F.Name & _
""".", vbInformation + vbOKOnly, "Attention"
End If
End If
Next
End Sub
'----------------------------
Function NumeroPage(Cellule As Range) As Integer
'Crée par : L Longre, mpfe
Dim VPC As Integer, HPC As Integer
Dim VPB As VPageBreak, HPB As HPageBreak
Dim Wksht As Worksheet
Dim Col As Integer, Ligne As Long
Set Wksht = Cellule.Worksheet
Ligne = Cellule.Row
Col = Cellule.Column
If Wksht.PageSetup.Order = xlDownThenOver Then
HPC = Wksht.HPageBreaks.Count + 1
VPC = 1
Else
VPC = Wksht.VPageBreaks.Count + 1
HPC = 1
End If
NumeroPage = 1
For Each VPB In Wksht.VPageBreaks
If VPB.Location.Column > Col Then Exit For
NumeroPage = NumeroPage + HPC
Next VPB
For Each HPB In Wksht.HPageBreaks
If HPB.Location.Row > Ligne Then Exit For
NumeroPage = NumeroPage + VPC
Next HPB
End Function
'--------------------------------------
Salutations!
"Oliv'" <(supprimerceci) a écrit dans le
message de news: Ohv7% Bonjour à
tous,
J'ai une feuille sur laquelle il n'y a que des images
Je voudrais INSERER un saut de page avant l'image si celle-ci est sur
2
pages.
-->13 en l'occurence (shapes)
Toutes mes lignes ont une hauteur de 12.75 points
et pagesetup.topmargin B points
quand je laisse les sauts de page automatiques il se trouvent en
lignes 93,185,277,369,461,553.
image 1 top = 0 height = 782.25
image 2 top = 820.5 height b4.75
image 3 top = 1483.5 height A1.75 etc...
Bien sur la taille des images peux varier mais chaque image est
séparée par
38.25 points
je dois donc comparer (Image.Top + Image.Height) à
HPageBreak(1).Location.Cells.Row*12.75
Quelqu'un aurait 'il cela en magasin ;-))) ???
Légère correction de la première section de la procédure :
'----------------------------
Sub IntercepterChevauchement_Image_PageBreaks()
Dim Rg As Range, Sh As Shape, F As Worksheet
Dim A As Integer, B As Integer
Set F = Worksheets("Feuil1")
For Each Sh In F.Shapes
If TypeName(Sh.OLEFormat.Object) = "Picture" Then
Set Rg = Range(Sh.BottomRightCell, Sh.TopLeftCell)
A = NumeroPage(Rg(1, 1))
B = NumeroPage(Rg(Rg.Rows.Count, Rg.Columns.Count))
If A + B > 0 And A <> B Then
MsgBox "L'image """ & Sh.Name & """ chevauchera " & _
"à l'impression, " & vbCrLf & " les pages " & _
A & " et " & B & " de la feuille """ & F.Name & _
""".", vbInformation + vbOKOnly, "Attention"
End If
End If
Next
End Sub
'----------------------------
Function NumeroPage(Cellule As Range) As Integer
'Crée par : L Longre, mpfe
Dim VPC As Integer, HPC As Integer
Dim VPB As VPageBreak, HPB As HPageBreak
Dim Wksht As Worksheet
Dim Col As Integer, Ligne As Long
Set Wksht = Cellule.Worksheet
Ligne = Cellule.Row
Col = Cellule.Column
If Wksht.PageSetup.Order = xlDownThenOver Then
HPC = Wksht.HPageBreaks.Count + 1
VPC = 1
Else
VPC = Wksht.VPageBreaks.Count + 1
HPC = 1
End If
NumeroPage = 1
For Each VPB In Wksht.VPageBreaks
If VPB.Location.Column > Col Then Exit For
NumeroPage = NumeroPage + HPC
Next VPB
For Each HPB In Wksht.HPageBreaks
If HPB.Location.Row > Ligne Then Exit For
NumeroPage = NumeroPage + VPC
Next HPB
End Function
'--------------------------------------
Salutations!
"Oliv'" <(supprimerceci) a écrit dans le
message de news: Ohv7% Bonjour à
tous,
J'ai une feuille sur laquelle il n'y a que des images
Je voudrais INSERER un saut de page avant l'image si celle-ci est sur
2
pages.
-->13 en l'occurence (shapes)
Toutes mes lignes ont une hauteur de 12.75 points
et pagesetup.topmargin B points
quand je laisse les sauts de page automatiques il se trouvent en
lignes 93,185,277,369,461,553.
image 1 top = 0 height = 782.25
image 2 top = 820.5 height b4.75
image 3 top = 1483.5 height A1.75 etc...
Bien sur la taille des images peux varier mais chaque image est
séparée par
38.25 points
je dois donc comparer (Image.Top + Image.Height) à
HPageBreak(1).Location.Cells.Row*12.75
Quelqu'un aurait 'il cela en magasin ;-))) ???
Légère correction de la première section de la procédure :
'----------------------------
Sub IntercepterChevauchement_Image_PageBreaks()
Dim Rg As Range, Sh As Shape, F As Worksheet
Dim A As Integer, B As Integer
Set F = Worksheets("Feuil1")
For Each Sh In F.Shapes
If TypeName(Sh.OLEFormat.Object) = "Picture" Then
Set Rg = Range(Sh.BottomRightCell, Sh.TopLeftCell)
A = NumeroPage(Rg(1, 1))
B = NumeroPage(Rg(Rg.Rows.Count, Rg.Columns.Count))
If A + B > 0 And A <> B Then
MsgBox "L'image """ & Sh.Name & """ chevauchera " & _
"à l'impression, " & vbCrLf & " les pages " & _
A & " et " & B & " de la feuille """ & F.Name & _
""".", vbInformation + vbOKOnly, "Attention"
End If
End If
Next
End Sub
'----------------------------
Function NumeroPage(Cellule As Range) As Integer
'Crée par : L Longre, mpfe
Dim VPC As Integer, HPC As Integer
Dim VPB As VPageBreak, HPB As HPageBreak
Dim Wksht As Worksheet
Dim Col As Integer, Ligne As Long
Set Wksht = Cellule.Worksheet
Ligne = Cellule.Row
Col = Cellule.Column
If Wksht.PageSetup.Order = xlDownThenOver Then
HPC = Wksht.HPageBreaks.Count + 1
VPC = 1
Else
VPC = Wksht.VPageBreaks.Count + 1
HPC = 1
End If
NumeroPage = 1
For Each VPB In Wksht.VPageBreaks
If VPB.Location.Column > Col Then Exit For
NumeroPage = NumeroPage + HPC
Next VPB
For Each HPB In Wksht.HPageBreaks
If HPB.Location.Row > Ligne Then Exit For
NumeroPage = NumeroPage + VPC
Next HPB
End Function
'--------------------------------------
Salutations!
"Oliv'" <(supprimerceci)catteau@ricour-assurances.fr> a écrit dans le
message de news: Ohv7%23Yl1FHA.3924@TK2MSFTNGP14.phx.gbl... Bonjour à
tous,
J'ai une feuille sur laquelle il n'y a que des images
Je voudrais INSERER un saut de page avant l'image si celle-ci est sur
2
pages.
-->13 en l'occurence (shapes)
Toutes mes lignes ont une hauteur de 12.75 points
et pagesetup.topmargin B points
quand je laisse les sauts de page automatiques il se trouvent en
lignes 93,185,277,369,461,553.
image 1 top = 0 height = 782.25
image 2 top = 820.5 height b4.75
image 3 top = 1483.5 height A1.75 etc...
Bien sur la taille des images peux varier mais chaque image est
séparée par
38.25 points
je dois donc comparer (Image.Top + Image.Height) à
HPageBreak(1).Location.Cells.Row*12.75
Quelqu'un aurait 'il cela en magasin ;-))) ???
Légère correction de la première section de la procédure :
'----------------------------
Sub IntercepterChevauchement_Image_PageBreaks()
Dim Rg As Range, Sh As Shape, F As Worksheet
Dim A As Integer, B As Integer
Set F = Worksheets("Feuil1")
For Each Sh In F.Shapes
If TypeName(Sh.OLEFormat.Object) = "Picture" Then
Set Rg = Range(Sh.BottomRightCell, Sh.TopLeftCell)
A = NumeroPage(Rg(1, 1))
B = NumeroPage(Rg(Rg.Rows.Count, Rg.Columns.Count))
If A + B > 0 And A <> B Then
MsgBox "L'image """ & Sh.Name & """ chevauchera " & _
"à l'impression, " & vbCrLf & " les pages " & _
A & " et " & B & " de la feuille """ & F.Name & _
""".", vbInformation + vbOKOnly, "Attention"
End If
End If
Next
End Sub
'----------------------------
Function NumeroPage(Cellule As Range) As Integer
'Crée par : L Longre, mpfe
Dim VPC As Integer, HPC As Integer
Dim VPB As VPageBreak, HPB As HPageBreak
Dim Wksht As Worksheet
Dim Col As Integer, Ligne As Long
Set Wksht = Cellule.Worksheet
Ligne = Cellule.Row
Col = Cellule.Column
If Wksht.PageSetup.Order = xlDownThenOver Then
HPC = Wksht.HPageBreaks.Count + 1
VPC = 1
Else
VPC = Wksht.VPageBreaks.Count + 1
HPC = 1
End If
NumeroPage = 1
For Each VPB In Wksht.VPageBreaks
If VPB.Location.Column > Col Then Exit For
NumeroPage = NumeroPage + HPC
Next VPB
For Each HPB In Wksht.HPageBreaks
If HPB.Location.Row > Ligne Then Exit For
NumeroPage = NumeroPage + VPC
Next HPB
End Function
'--------------------------------------
Salutations!
"Oliv'" <(supprimerceci) a écrit dans le
message de news: Ohv7% Bonjour à
tous,
J'ai une feuille sur laquelle il n'y a que des images
Je voudrais INSERER un saut de page avant l'image si celle-ci est sur
2
pages.
-->13 en l'occurence (shapes)
Toutes mes lignes ont une hauteur de 12.75 points
et pagesetup.topmargin B points
quand je laisse les sauts de page automatiques il se trouvent en
lignes 93,185,277,369,461,553.
image 1 top = 0 height = 782.25
image 2 top = 820.5 height b4.75
image 3 top = 1483.5 height A1.75 etc...
Bien sur la taille des images peux varier mais chaque image est
séparée par
38.25 points
je dois donc comparer (Image.Top + Image.Height) à
HPageBreak(1).Location.Cells.Row*12.75
Quelqu'un aurait 'il cela en magasin ;-))) ???
Bonjour Oliv,ma macro fonctionnant assez bien pour faire cela
***Si tu es satisfait de ta macro, tant mieux !
Ce que je ne comprends pas par contre c'est que dans une boucle
*** L'ordre avec lequel excel effectue sa boucle est déterminé par
l'ordre avec lequel tu as créé les contrôles affichés.
Quelle différence ya t'il entre un test sur
TypeName(Sh.OLEFormat.Object) et sur sh.type ?
ok c'est plus détaillé en quelque sorte.
Bonjour Oliv,
ma macro fonctionnant assez bien pour faire cela
***Si tu es satisfait de ta macro, tant mieux !
Ce que je ne comprends pas par contre c'est que dans une boucle
*** L'ordre avec lequel excel effectue sa boucle est déterminé par
l'ordre avec lequel tu as créé les contrôles affichés.
Quelle différence ya t'il entre un test sur
TypeName(Sh.OLEFormat.Object) et sur sh.type ?
ok c'est plus détaillé en quelque sorte.
Bonjour Oliv,ma macro fonctionnant assez bien pour faire cela
***Si tu es satisfait de ta macro, tant mieux !
Ce que je ne comprends pas par contre c'est que dans une boucle
*** L'ordre avec lequel excel effectue sa boucle est déterminé par
l'ordre avec lequel tu as créé les contrôles affichés.
Quelle différence ya t'il entre un test sur
TypeName(Sh.OLEFormat.Object) et sur sh.type ?
ok c'est plus détaillé en quelque sorte.