OVH Cloud OVH Cloud

Saut de page

4 réponses
Avatar
Claire
Bonjour,
J'aimerais pouvoir trouver les sauts de page et les déplacer si nécessaire
et cela en vba.
Le saut de page devrait être au dessus d'une cellule à l'intérieur bleu
(colorindex=34). Mes cellules bleues reviennent à toutes les 4 lignes.
Merci
Claire

4 réponses

Avatar
Benead
Bonsoir Claire,

Voici un exemple de code :

' *****************************
Option Explicit

Const Couleur As Byte = 34 ' Numéro de l'index de couleur
Const Col As String = "A" ' Choix de la colonne de référence (A pour l'exemple)

Sub ModifSautPage()
Dim n As Integer, Saut As Range, x As Integer, Lig As Long
Application.ScreenUpdating = False
ActiveWindow.View = xlPageBreakPreview ' Affichage des sauts de page (Conseillé sous XL97)
ActiveSheet.ResetAllPageBreaks
n = 1 ' Initialisation du saut de page
Do Until n > ActiveSheet.HPageBreaks.Count ' sortie si plus de saut de page
Lig = ActiveSheet.HPageBreaks(n).Location.Row ' Numéro de ligne du saut de page horizontal
Application.StatusBar = "Saut de page : " & n & "/" _
& ExecuteExcel4Macro("GET.DOCUMENT(50)") - 1
x = 0
Do Until Cells(Lig - x, Col).Interior.ColorIndex = Couleur
x = x + 1
If x = 20 Then Exit Do ' On force un saut de page si on ne trouve pas
' de cellule bleu après une boucle de 20
Loop
' Insertion d'un saut de page horizontal
ActiveSheet.HPageBreaks.Add Cells(Lig - x, Col)
n = n + 1 ' Passage au saut de page suivant
Loop
ActiveWindow.View = xlNormalView
Application.StatusBar = False
Application.ScreenUpdating = True
End Sub
' *****************************

Tu dois déclarer les 2 constantes de tes besoins.
Si la couleur intérieure des cellules est obtenue par la mise en forme conditionnelle, il faut remplacer le test de
colorIndex par une condition à l'identique à la mefc.

A+
Benead
XL97

Claire a écrit:
Bonjour,
J'aimerais pouvoir trouver les sauts de page et les déplacer si nécessaire
et cela en vba.
Le saut de page devrait être au dessus d'une cellule à l'intérieur bleu
(colorindex4). Mes cellules bleues reviennent à toutes les 4 lignes.
Merci
Claire




Avatar
Claire
Je te remercie Benead, j'ai pu résoudre en partie mon problème mais je pense
que ta façon serait meilleur, je vais l'essayer, c'est certain.

J'essaie d'insérer un saut de page en vba et cela ne fonctionne pas.
Voici mon code:
x=$67:$67 'valeur trouvée par "x = rw.Address"
Rows(x).Select
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:¬tiveCell

tout semble fonctionner mais lorsque je fais un aperçu avant impression mon
saut de page n'est pas là mais si je vais voir sur la ligne, je peux le
supprimer. Je ne comprends rien.

Sniff sniff
Claire

"Benead" a écrit dans le message de
news:
Bonsoir Claire,

Voici un exemple de code :

' *****************************
Option Explicit

Const Couleur As Byte = 34 ' Numéro de l'index de couleur
Const Col As String = "A" ' Choix de la colonne de référence (A pour
l'exemple)


Sub ModifSautPage()
Dim n As Integer, Saut As Range, x As Integer, Lig As Long
Application.ScreenUpdating = False
ActiveWindow.View = xlPageBreakPreview ' Affichage des sauts de page
(Conseillé sous XL97)

ActiveSheet.ResetAllPageBreaks
n = 1 ' Initialisation du saut de page
Do Until n > ActiveSheet.HPageBreaks.Count ' sortie si plus de saut
de page

Lig = ActiveSheet.HPageBreaks(n).Location.Row ' Numéro de ligne
du saut de page horizontal

Application.StatusBar = "Saut de page : " & n & "/" _
& ExecuteExcel4Macro("GET.DOCUMENT(50)") - 1
x = 0
Do Until Cells(Lig - x, Col).Interior.ColorIndex = Couleur
x = x + 1
If x = 20 Then Exit Do ' On force un saut de page si on ne
trouve pas

' de cellule bleu après une boucle de
20

Loop
' Insertion d'un saut de page horizontal
ActiveSheet.HPageBreaks.Add Cells(Lig - x, Col)
n = n + 1 ' Passage au saut de page suivant
Loop
ActiveWindow.View = xlNormalView
Application.StatusBar = False
Application.ScreenUpdating = True
End Sub
' *****************************

Tu dois déclarer les 2 constantes de tes besoins.
Si la couleur intérieure des cellules est obtenue par la mise en forme
conditionnelle, il faut remplacer le test de

colorIndex par une condition à l'identique à la mefc.

A+
Benead
XL97

Claire a écrit:
Bonjour,
J'aimerais pouvoir trouver les sauts de page et les déplacer si
nécessaire


et cela en vba.
Le saut de page devrait être au dessus d'une cellule à l'intérieur bleu
(colorindex4). Mes cellules bleues reviennent à toutes les 4 lignes.
Merci
Claire







Avatar
Benead
Bonjour Claire,

Vérifie dans la mise en page que tu es en mode zoom et non pas en mode "ajuster sur x pages en hauteur"...
Avec ce second mode, c'est Excel qui calcule les sauts de pages.
Tu peux donc mettre au début de ton code :
ActiveSheet.PageSetup.Zoom = xxx ' ou xxx correspond au pourcentage désiré

Si tu travailles sur plusieurs feuilles en même temps, tu devras passer par un boucle pour initialiser le zoom, car il
ne peut s'appliquer à une collection (SelectedSheets)

Allez, sèche tes larmes et prend confiance en toi, tu t'en sortira...


A+
Benead

Claire a écrit:
Je te remercie Benead, j'ai pu résoudre en partie mon problème mais je pense
que ta façon serait meilleur, je vais l'essayer, c'est certain.

J'essaie d'insérer un saut de page en vba et cela ne fonctionne pas.
Voici mon code:
x=$67:$67 'valeur trouvée par "x = rw.Address"
Rows(x).Select
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:¬tiveCell

tout semble fonctionner mais lorsque je fais un aperçu avant impression mon
saut de page n'est pas là mais si je vais voir sur la ligne, je peux le
supprimer. Je ne comprends rien.

Sniff sniff
Claire

"Benead" a écrit dans le message de
news:

Bonsoir Claire,

Voici un exemple de code :

' *****************************
Option Explicit

Const Couleur As Byte = 34 ' Numéro de l'index de couleur
Const Col As String = "A" ' Choix de la colonne de référence (A pour


l'exemple)

Sub ModifSautPage()
Dim n As Integer, Saut As Range, x As Integer, Lig As Long
Application.ScreenUpdating = False
ActiveWindow.View = xlPageBreakPreview ' Affichage des sauts de page


(Conseillé sous XL97)

ActiveSheet.ResetAllPageBreaks
n = 1 ' Initialisation du saut de page
Do Until n > ActiveSheet.HPageBreaks.Count ' sortie si plus de saut


de page

Lig = ActiveSheet.HPageBreaks(n).Location.Row ' Numéro de ligne


du saut de page horizontal

Application.StatusBar = "Saut de page : " & n & "/" _
& ExecuteExcel4Macro("GET.DOCUMENT(50)") - 1
x = 0
Do Until Cells(Lig - x, Col).Interior.ColorIndex = Couleur
x = x + 1
If x = 20 Then Exit Do ' On force un saut de page si on ne


trouve pas

' de cellule bleu après une boucle de


20

Loop
' Insertion d'un saut de page horizontal
ActiveSheet.HPageBreaks.Add Cells(Lig - x, Col)
n = n + 1 ' Passage au saut de page suivant
Loop
ActiveWindow.View = xlNormalView
Application.StatusBar = False
Application.ScreenUpdating = True
End Sub
' *****************************

Tu dois déclarer les 2 constantes de tes besoins.
Si la couleur intérieure des cellules est obtenue par la mise en forme


conditionnelle, il faut remplacer le test de

colorIndex par une condition à l'identique à la mefc.

A+
Benead
XL97

Claire a écrit:

Bonjour,
J'aimerais pouvoir trouver les sauts de page et les déplacer si


nécessaire


et cela en vba.
Le saut de page devrait être au dessus d'une cellule à l'intérieur bleu
(colorindex4). Mes cellules bleues reviennent à toutes les 4 lignes.
Merci
Claire











Avatar
Claire
Merci beaucoup, j'avais en effet dans ma mise en page ce bout de code, je
l'ai remplacé par un zoom.

Merci encore une fois
Claire

"Benead" a écrit dans le message de
news:
Bonjour Claire,

Vérifie dans la mise en page que tu es en mode zoom et non pas en mode
"ajuster sur x pages en hauteur"...

Avec ce second mode, c'est Excel qui calcule les sauts de pages.
Tu peux donc mettre au début de ton code :
ActiveSheet.PageSetup.Zoom = xxx ' ou xxx correspond au pourcentage désiré

Si tu travailles sur plusieurs feuilles en même temps, tu devras passer
par un boucle pour initialiser le zoom, car il

ne peut s'appliquer à une collection (SelectedSheets)

Allez, sèche tes larmes et prend confiance en toi, tu t'en sortira...


A+
Benead

Claire a écrit:
Je te remercie Benead, j'ai pu résoudre en partie mon problème mais je
pense


que ta façon serait meilleur, je vais l'essayer, c'est certain.

J'essaie d'insérer un saut de page en vba et cela ne fonctionne pas.
Voici mon code:
x=$67:$67 'valeur trouvée par "x = rw.Address"
Rows(x).Select
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:¬tiveCell

tout semble fonctionner mais lorsque je fais un aperçu avant impression
mon


saut de page n'est pas là mais si je vais voir sur la ligne, je peux le
supprimer. Je ne comprends rien.

Sniff sniff
Claire

"Benead" a écrit dans le
message de


news:

Bonsoir Claire,

Voici un exemple de code :

' *****************************
Option Explicit

Const Couleur As Byte = 34 ' Numéro de l'index de couleur
Const Col As String = "A" ' Choix de la colonne de référence (A pour


l'exemple)

Sub ModifSautPage()
Dim n As Integer, Saut As Range, x As Integer, Lig As Long
Application.ScreenUpdating = False
ActiveWindow.View = xlPageBreakPreview ' Affichage des sauts de
page




(Conseillé sous XL97)

ActiveSheet.ResetAllPageBreaks
n = 1 ' Initialisation du saut de page
Do Until n > ActiveSheet.HPageBreaks.Count ' sortie si plus de saut


de page

Lig = ActiveSheet.HPageBreaks(n).Location.Row ' Numéro de
ligne




du saut de page horizontal

Application.StatusBar = "Saut de page : " & n & "/" _
& ExecuteExcel4Macro("GET.DOCUMENT(50)") - 1
x = 0
Do Until Cells(Lig - x, Col).Interior.ColorIndex = Couleur
x = x + 1
If x = 20 Then Exit Do ' On force un saut de page si on ne


trouve pas

' de cellule bleu après une boucle
de




20

Loop
' Insertion d'un saut de page horizontal
ActiveSheet.HPageBreaks.Add Cells(Lig - x, Col)
n = n + 1 ' Passage au saut de page suivant
Loop
ActiveWindow.View = xlNormalView
Application.StatusBar = False
Application.ScreenUpdating = True
End Sub
' *****************************

Tu dois déclarer les 2 constantes de tes besoins.
Si la couleur intérieure des cellules est obtenue par la mise en forme


conditionnelle, il faut remplacer le test de

colorIndex par une condition à l'identique à la mefc.

A+
Benead
XL97

Claire a écrit:

Bonjour,
J'aimerais pouvoir trouver les sauts de page et les déplacer si


nécessaire


et cela en vba.
Le saut de page devrait être au dessus d'une cellule à l'intérieur bleu
(colorindex4). Mes cellules bleues reviennent à toutes les 4 lignes.
Merci
Claire