Insertion saut de page si condition

Nounou -  
 Nounou -
Bonjour,

J'aimerais sous excel mettre un saut de page à chaque fois qu'une cellule de ma colonne A contient le mot "Chpt".
Je n'arrive as à trouver le code me permettant de faire cela.
Je galère, galère, galère...
Merci pour votre aide.

2 réponses

Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   309
 
Salut Nounou,
le code ci-dessous devrait te permettre de faire ta manip', à condition qu'il n'y ait pas de trous dans les données de ta colonne A, puisque la boucle s'arrête quand elle rencontre une cellule vide.
Si ce n'est pas le cas (données discontinues), il faudrait apporter qqs modifications.
I.

Sub InsertApresChpt()

Range("A2").Select
While ActiveCell.Value <> Empty
If ActiveCell.Value = "Chpt" Then
ActiveWindow.SelectedSheets.HPageBreaks.Add before:=ActiveCell.Offset(1, 0)
End If
ActiveCell.Offset(1, 0).Activate
Wend

End Sub
0
pcbb
 
Merci beaucoup Ivan-hoé. T'es super super sympa.
Tu m'enlèves une sacrée épine du pied...

Le seul hic est que cela me fait un saut de page après la ligne contenant "chpt" alors que je le voudrais juste avant cette ligne (je ne l'avais pas précisé dans l'exposé de mon problème, mille pardons).

Peux-tu m'aider pour corriger cet oubli ?

Et si j'ose abuser (comme t'as l'air fort !)...
1. Le même problème mais dans le cas de données discontinues (cela me servira pour un autre truc dans mon boulot)

2. peux-tu me donner la formule à remplacer dans le cas où au lieu que ce soit égal à "Chpt" dans la cellule (donc "chpt" est l'unique donnée de la cellule) : que le mot "chpt" se trouve dans la cellule parmi une phrase (donc "chpt" se trouve dans la cellule parmi d'autres mots). C'est encore pour un autre truc dans mon boulot.

Encore merci de ton aide très précieuse.
0
Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   309
 
Prenons les choses dans l'ordre :

pour avoir le saut de page AVANT Chpt :
ActiveWindow.SelectedSheets.HPageBreaks.Add before:=ActiveCell
[supprimer .offset(1,0)]

1. Le même problème mais dans le cas de données discontinues :
Il faudrait alors définir la dernière ligne de données, sélectionner la plage à traiter et faire une boucle dedans (par exemple)

Dim Cellule as range
Dim DerniereLigne as long
DerniereLigne= range("A65536").end(xlup).row
range("A2:A" & derniereligne).select
For each Cellule in selection
[instructions]
Next cellule

2. peux-tu me donner la formule à remplacer dans le cas où le mot "chpt" se trouve dans la cellule parmi une phrase
If ActiveCell.Value like "*Chpt*" Then etc.

ça te convient ?
0
Nounou
 
Merci à toi, OH GRAND IVAN-HOE !!!
T'es génial !
Merci... merci... merci...
0