VBA saut de page

Résolu
juer31 Messages postés 114 Date d'inscription   Statut Membre Dernière intervention   -  
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai déjà un code qui effectue divers opération sur une de mes feuille. et j'aimerai que lorsque la ligne 25 de ma feuille est hidden =true qu'un saut de page s'ajoute sur la ligne 26.

Je n'y arrive pas est-ce que quelqu'un peux m'aider?

Merci

1 réponse

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

Activesheet.HPageBreaks.Add before:=Activesheet.Cells(26, 1) 

0
juer31 Messages postés 114 Date d'inscription   Statut Membre Dernière intervention   6
 
Merci ça fonctionne #1. mais si je veux supprimer le saut de page à la fin de mon code?
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

Curieusement, on ne peut donc pas faire :
Dim hbk As HPageBreak
Set hbk = ActiveSheet.HPageBreaks.Add(before:=ActiveSheet.Cells(26, 1))
' et en fin de code 
hbk.Delete

On ne peut pas définir un objet pour un saut de page particulier !

De plus, il existe toujours un saut de page non défini, ce qui génère une erreur lorsqu'on explore tous les sauts de page, voici donc un code à ajouter en fin de code (tu peux mettre le Dim au début) :
Dim hbk As HPageBreak

On Error Resume Next
For Each hbk In ActiveSheet.HPageBreaks
  If hbk.Location.Address = ActiveSheet.Cells(26, 1).Address Then
    hbk.Delete
  End If
Next hbk
On Error GoTo 0

On pourrait aussi boucler jusqu'au pénultième saut de page mais ça me plait beaucoup moins :
Dim i as Integer

With ActiveSheet
  For i = 1 To .HPageBreaks.Count - 1
    If .HPageBreaks(i).Location.Address = .Cells(26, 1).Address Then
      .HPageBreaks(i).Delete
    End If
  Next i
End With
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour, chez moi, Office 2016, ActiveSheet.HPageBreaks.Count reste 0, et le for each ne fais aucune itération.
peut-être ceci:
https://docs.microsoft.com/fr-fr/office/vba/api/excel.worksheet.resetallpagebreaks
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bonjour yg_be,

Chez moi avec 2016, ça fonctionne bien (il faut que la feuille contienne des valeurs à imprimer)
0