• Initiateur de la discussion Initiateur de la discussion latanz
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

latanz

Guest
Bonjour

voici ma macro, elle insère un saut de page avant chaque "----------------------------------------- ". Comment faire pour insérer les saut de page avant ?

Sub SautDePage()
Dim c As Range
Dim i As Integer

With Feuil1 '

For Each c In .Range("A1:A" & [A65536].End(xlUp).Row)

If c.Value = "-----------------------------------------" Then

.HPageBreaks.Add Before:=c
i = i + 1
If i = 1026 Then Exit Sub

End If
Next

End With

End Sub



****

Merci pour votre aide.
 
Re : add after

Bonjour latanz, salut mutzik,

Code:
Sub SautDePage()
Dim c As Range, i As Integer

With Feuil1

[COLOR="Red"]'---Supprime tous les sauts de page situés dans une ZONE IMPRIMABLE---
For i = .HPageBreaks.Count To 1 Step -1
.HPageBreaks(i).Delete
Next[/COLOR]

'---Ajoute un saut de page [COLOR="Red"]APRES[/COLOR] la cellule contenant au moins 3 tirets---
For Each c In .Range("A1:A" & [A65536].End(xlUp).Row)
If c Like "---*" Then
.HPageBreaks.Add Before:=[COLOR="Red"]c.Offset(1)[/COLOR]
i = i + 1
If i = 1026 Then Exit Sub [COLOR="Red"]'variante => If .HPageBreaks.Count = 1026 Then Exit Sub[/COLOR]
End If
Next

End With

End Sub

Nota : un saut de page appartient à la collection HPageBreaks seulement s'il est situé dans une zone imprimable (si les cellules dessous ne sont pas toutes vides).

A+
 
Dernière édition:
Re : add after

je crois que j'ai trouvé :

Sub SautDePage()
Dim c As Range, i As Integer

With Feuil1
On Error Resume Next
For j = ActiveSheet.HPageBreaks.Count To 1 Step -1
ActiveSheet.HPageBreaks(j).Delete
Next j
On Error GoTo 0

'---Ajoute un saut de page APRES la cellule contenant au moins 3 tirets---
For Each c In .Range("A1:A" & [A65536].End(xlUp).Row)
If c Like "---*" Then
.HPageBreaks.Add Before:=c.Offset(1)
i = i + 1
If i = 1026 Then Exit Sub
End If
Next

End With

End Sub
 
Re : add after

Bonjour latanz,

Vous avez raison, la boucle de suppression bug. J'avais pourtant testé...

Avec les index croissants, il n'y avait pas moyen, et ça semblait fonctionner avec les index décroissants...

Bien sûr vous pouvez mettre On Error Resume Next, mais autant alors ne pas faire de suppression.

Je vais encore chercher et si je trouve, je reviens vers vous.

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
791
Réponses
5
Affichages
915
Retour