Saut de page si critère rencontré

LPandre

XLDnaute Impliqué
Bonjour, j'ai trouvé sur le forum une réponse à 99 % pour faire un saut de page si un critère est rencontré ( ligne en italique dans le code ci dessous).
Mais il me manque un "truc" : je souhaite un saut de page si la cellule contient en premier caractère gauche un M . Ceci pour avoir un saut de page non seulement pour les Mr, mais aussi pour les Mme , Mle , etc.
J'ignore si la solution est un truc du genre "left M" ou bien un "Mr" or " Mme" etc.

Par avance MERCI.

Sub insert_sdp()
Dim C As Range, Plg As Range
Dim FAdr As String
ActiveSheet.ResetAllPageBreaks
Set Plg = Range("D2:D" & Cells(Rows.Count, 2).End(xlUp).Row)
' Critère à trouver dans les cellules de la plage pour avoir un saut de page :
Set C = Plg.Find("M", LookAt:=xlPart)
If Not C Is Nothing Then
FAdr = C.Address
Do
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=C
Set C = Plg.FindNext(C)
Loop While Not C Is Nothing And C.Address <> FAdr
End If
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Saut de page si critère rencontré

Bonjour,

peut être avec l'opérateur "like" et le "joker" (*), exemple ci-dessous :

Code:
If Range("A1").Value Like "M*" Then

bonne journée
@+

Edition : bonjour 00:)
 
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Re : Saut de page si critère rencontré

Bonjour, LPandre, le Forum,

Peut-être ainsi :

Code:
Option Explicit
Sub Saut_de_page_si()
'Adaptation d'un code de Gorfael (Merci !)
Dim i As Long
Application.ScreenUpdating = False
For i = ActiveSheet.HPageBreaks.Count To 1 Step -1
    ActiveSheet.HPageBreaks(i).Delete
Next i
For i = 2 To Range("A65536").End(xlUp).Row
    If Range("A" & i) = "Mme" Or Range("A" & i) = "Mle" Or Range("A" & i) = "Mr" Then _
        ActiveSheet.HPageBreaks.Add Before:=Range("A" & i)
Next i
Application.ScreenUpdating = True
End Sub

A bientôt :)

P. S. : Bonjour, Pierrot :D
 
Dernière édition:

LPandre

XLDnaute Impliqué
Re : Saut de page si critère rencontré

Pierrot, je n'ai pas compris où et comment il fallait mettre le code. :(

Double zéro : avec une petite adaptation ça fonctionne. Il reste que j'ai du supprimer la ligne :

ActiveSheet.HPageBreaks(i).Delete

car elle engendre le message suivant : "L'indice n'appartient pas à la selection"

Merci à vous 2
 

Discussions similaires

Réponses
12
Affichages
581
Réponses
28
Affichages
1 K

Statistiques des forums

Discussions
312 330
Messages
2 087 343
Membres
103 525
dernier inscrit
gbaipc