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

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

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
 
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:
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.
 
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
@+
 
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

- 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

  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
588
Réponses
2
Affichages
527
Retour