VBA - Saut de page conditionnel

  • Initiateur de la discussion Initiateur de la discussion rom3210
  • 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 !

rom3210

XLDnaute Nouveau
Bonjour à tous,

Je souhaite ajouter un saut de page dès lors que le mot "SAUT" apparaît dans la colonne A.
Après quelques recherches sur des forums, j'ai trouvé cette solution :

-------------------------------------------------------

Sub SautDePage()

ActiveSheet.ResetAllPageBreaks

Dim R As Range

Dim Adr As String

Application.ScreenUpdating = False

With Sheets("Feuil1")

Set R = .Columns(1).Find("SAUT")

If R Is Nothing Then Exit Sub

Adr = R.Address

Do

.HPageBreaks.Add R.Offset(1, 0)

Set R = .Columns(1).FindNext(R)

Loop While Not R Is Nothing And R.Address <> Adr

End With

Application.ScreenUpdating = True

End Sub

-------------------------------------------------------

Cela fonctionne bien si et seulement si le mot "SAUT" est écrit textuellement dans la cellule.
En revanche, si au lieu d'écrire le mot "SAUT", j'ajoute une formule conditionnelle ( ex : =SI(B1="";"";"SAUT") ) dans la colonne A, cela ne fonctionne plus.

Je pense avoir localisé le problème : La fonction "Find" recherche le mot dans la cellule (et non le résultat de la cellule).

Malheureusement, mes compétences VBA étant très limitées, je ne sais pas comment faire...

Merci d'avance,
Romain
 
Bonsoir
Il faut que tu compares la valeur de ta cell qui est une chaine donc avec 'Cstr'
Je te mets un exemple de ce que je ferai ..et avec un VBA ... basique 🙂
Je ne connais pas l'utilité du "HPageBreaks.Add" !! et comment tu veux l'utiliser
mais dans mon essai cela met des lignes pointillées toutes les 22 !
Code:
Sub SautDePage()
ActiveSheet.ResetAllPageBreaks
With Sheets("Feuil1")
For x = 1  To .Range("b1000").End(xlUp).Row
If CStr(.Cells(x, 1)) = "SAUT" Then
.HPageBreaks.Add .Cells(x, 1)
End If
Next x
End With
End Sub
 
- 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

Discussions similaires

Réponses
4
Affichages
223
Réponses
7
Affichages
163
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
2
Affichages
153
Retour