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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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
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
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" <anonymous@discussions.microsoft.com> a écrit dans le message news:
032c01c4e43e$b56f92f0$a501280a@phx.gbl...
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
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
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
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.
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.