Rechercher un titre dans une colonne par For Each [RESOLU]

Guy_L

XLDnaute Occasionnel
Bonjour,
Je voudrais rajouter un saut de page à chaque fois que la macro trouve un certain titre
Est-ce que ça peut fonctionner comme ça ?
Code:
Sub saut()
For Each Cell In Range("E:E")
If Cell.Value = "le titre recherché" Then
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cell
End If
Next
End Sub
 

Papou-net

XLDnaute Barbatruc
Re : Rechercher un titre dans une colonne par For Each

Bonsoir Guy_L,

Je n'ai pas testé ton code car, si je n'y relève pas d'anomalie flagrante, La boucle définie sur la colonne E:E me parait bien trop lourde.

Le code suivant devrait lui faire gagner un temps non négligeable :

Code:
Sub Saut()
Dim n As Integer, hp As Integer
With ActiveSheet
  ' Suppression des sauts de page manuels
  n = .HPageBreaks.Count
  For hp = n To 1 Step -1
    If .HPageBreaks.Item(hp).Type = xlPageBreakManual Then .HPageBreaks(hp).Delete
  Next
  ' Insertion des sauts de page avant chaque titre
  With .Range("E:E")
    Set cel = .Find("le titre recherché", LookIn:=xlValues)
    If Not cel Is Nothing Then
      lg = cel.Row
      Do
        If cel.Row > 1 Then ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=cel
        Set cel = .FindNext(cel)
      Loop While Not cel Is Nothing And lg <> cel.Row
    End If
  End With
End With
End Sub
Tiens-nous au courant, stp.

Cordialement.



Edit : ajouté boucle pour suppression des sauts de page précédents
 
Dernière édition:

Guy_L

XLDnaute Occasionnel
Re : Rechercher un titre dans une colonne par For Each

Ca ne marche pas. Mais en revanche, j'ai trouvé pourquoi ma macro ne fonctionnait pas:
il y a un Alt+Entrée dans le texte recherché et je ne sais pas comment le détecter dans la chaine de caractères recherchée.
 

Pierrot93

XLDnaute Barbatruc
Re : Rechercher un titre dans une colonne par For Each

Bonjour,

il y a un Alt+Entrée dans le texte recherché et je ne sais pas comment le détecter dans la chaine de caractères recherchée.

exemple ci-dessous pour détecter le saut de ligne :
Code:
If InStr(ActiveCell, vbLf) > 0 Then MsgBox "saut de ligne présent"

bonne journée
@+
 

Papou-net

XLDnaute Barbatruc
Re : Rechercher un titre dans une colonne par For Each

Bonsoir Guy_L,

Ca ne marche pas. Mais en revanche, j'ai trouvé pourquoi ma macro ne fonctionnait pas:
il y a un Alt+Entrée dans le texte recherché et je ne sais pas comment le détecter dans la chaine de caractères recherchée.

Et pourtant cette macro fonctionne parfaitement, je te joins un fichier exemple pour le vérifier.

Ce dysfonctionnement était bien dû à la présence de caractères spéciaux, comme tu le précises.

Dans l'exemple que j'ai reproduit (selon tes données) pour éviter ce genre d'erreur je définis la recherche selon le contenu de la 1ère cellule de titre, soit E5 dans ce cas précis.

Cordialement.

PS : bonsoir Pierrot.
 

Pièces jointes

  • Exemple saut de page.xls
    30.5 KB · Affichages: 24

Discussions similaires

Réponses
2
Affichages
134

Statistiques des forums

Discussions
312 369
Messages
2 087 675
Membres
103 634
dernier inscrit
mariobroz