VBA - Saut de page conditionnel

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
 

herve62

XLDnaute Barbatruc
Supporter XLD
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
 

Discussions similaires

Statistiques des forums

Discussions
312 337
Messages
2 087 391
Membres
103 536
dernier inscrit
komivi