OVH Cloud OVH Cloud

saut de page

4 réponses
Avatar
Fred87
Bonjour

Comment peut on d=E9tecter si une image se trouve sur un=20
saut de page.

Le probl=E8me et lorsque une image se trouve entre deux=20
pages, elle est tronqu=E9e lors de l'impression.

Mes pages excel =E9tant cr=E9es en automatique il faudrais
que par le code je puisse savoir leur position par rapport
a un saut de ligne pour pouvoir les d=E9caler.

Merci pour toutes infos ou coup de pouce pour ce pb

FRED87

4 réponses

Avatar
anomymousA
bonjour,

le code suivant te permetd e déetcter si il existe une forme (shape) sur un
saut de page. A toi de l'adapter pour bouger ensuite tes formes.
Attention, j'ai pas bien eu le temps de chercher pourqoui mais pour que ca
marche il faut s'etre positionné au moins 1 fois sur la cellule de fin de
fichier .
les Msgbox sont evidemment à enlever mais je les ai laissé à titre d'exemple.
si tu veux bouger ta forme il faut evidemment le faire dans la boucle for de
for each sh.

Dim hp As HPageBreak
Dim ws As Worksheet
Dim sh As Shape
Set ws = ActiveWorkbook.ActiveSheet
MsgBox ws.HPageBreaks.Count
For I = 1 To ws.HPageBreaks.Count
'MsgBox ws.HPageBreaks.Item(I).Location.Address
For Each sh In ws.Shapes
Set rngsh = Range(Cells(sh.TopLeftCell.Row, 1),
Cells(sh.BottomRightCell.Row, 256))
'MsgBox rngsh.Address
Set isect =
Application.Intersect(Range(ws.HPageBreaks.Item(I).Location.Address), rngsh)

If isect Is Nothing Then
Else
MsgBox sh.Name
Exit For
End If
Next
Next

A+


Bonjour

Comment peut on détecter si une image se trouve sur un
saut de page.

Le problème et lorsque une image se trouve entre deux
pages, elle est tronquée lors de l'impression.

Mes pages excel étant crées en automatique il faudrais
que par le code je puisse savoir leur position par rapport
a un saut de ligne pour pouvoir les décaler.

Merci pour toutes infos ou coup de pouce pour ce pb

FRED87



Avatar
Hervé
Salut,
Teste ceci pour voir si cela te convient et adapte :
Sub SautDePage()
Dim Fe As Worksheet
Dim Image As Shape
Dim Haut As Single
Dim Bas As Single
Dim TblImage()
Dim TblSaut() As Double
Dim I As Integer
Dim J As Integer

Set Fe = Worksheets("Feuil1")
'force l'affichage des sauts de page
ActiveWindow.ScrollRow = 5000
'récupère la position des sauts de page
With Fe
For I = 1 To .HPageBreaks.Count
ReDim Preserve TblSaut(1 To I)
TblSaut(I) = .Range("A" & .HPageBreaks(I) _
.Location.Row).Top / 3.125
Next I
I = 0
'récupère la position des images
For Each Image In .Shapes
I = I + 1
ReDim Preserve TblImage(1 To 3, 1 To I)
TblImage(1, I) = Image.Top
TblImage(2, I) = Image.Top + Image.Height
TblImage(3, I) = Image.TopLeftCell.Address(0, 0)
Next Image
End With
'effectue le contrôle
For I = 1 To UBound(TblSaut)
For J = 1 To UBound(TblImage, 2)
If TblImage(1, J) < TblSaut(I) _
And TblImage(2, J) > TblSaut(I) Then
MsgBox "l'image ayant le coin supérieur " _
& "gauche sur la cellule [" & TblImage(3, J) _
& "] est sur un saut de page !"
End If
Next J
Next I
'remet le haut de la feuille à l'écran
ActiveWindow.ScrollRow = 1
End Sub

Hervé.

"Fred87" a écrit dans le message news:
032c01c4e43e$b56f92f0$
Bonjour

Comment peut on détecter si une image se trouve sur un
saut de page.

Le problème et lorsque une image se trouve entre deux
pages, elle est tronquée lors de l'impression.

Mes pages excel étant crées en automatique il faudrais
que par le code je puisse savoir leur position par rapport
a un saut de ligne pour pouvoir les décaler.

Merci pour toutes infos ou coup de pouce pour ce pb

FRED87
Avatar
Bonjour

Merci à tous pour vos réponse précieuse.

Je vais étudier vos code avec attention.

FRED87
Avatar
Fred87
Bonjour

Je n'arrive pas à avoir ce que je veut avec ce code,
il y à un probléme avec les valeurs extraites.

Entre les valeurs issues du calcul de la distance des
sauts de pages(depuis le haut de la feuille) et la
distance
des photos avec leur hauteur. Il me semble qu'il y à un PB
d'unité car les valeurs extraites ne correspondent pas
entre elles (il y à un fort décalage entre la distance
d'un saut de page par exemple 1732 "de je ne sais pas
quelle unité" et la distance d'un image se trouvant sur
ce même saut de page 848 pour le top de l'image.)
La hauteur de l'image étant de 2,91 cm quelles peuvent
être les pb de convertion entre les données extraite.
Quel est donc se diviseur de 3.125 sur la valeur extraite
de la hauteur des sauts de page ??

Sinon le procédé me convient trés bien car sur certaines
valeurs cela fonctionne.

Merci de m'aider à comprendre ce problème.

FRED87