VBA saut de page

Résolu
juer31 Messages postés 120 Statut Membre -  
Patrice33740 Messages postés 8400 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

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    Bonjour,

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

    0
    1. juer31 Messages postés 120 Statut Membre 6
       
      Merci ça fonctionne #1. mais si je veux supprimer le saut de page à la fin de mon code?
      0
    2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      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
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Patrice33740 Messages postés 8400 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
      2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783 > yg_be Messages postés 23437 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