Sub ExtraireNotes()
'
Dim Notes, Lignes, Textes ' Tableaux de valeurs
Dim Num As String ' Numéro de la note en cours
Dim iNote As Integer, iTexte As Integer ' Compteurs de boucles
'
' Récupérer les textes de notes
With ThisWorkbook.Sheets("Page 1").Range("A1").CurrentRegion
Textes = .Offset(1).Resize(.Rows.Count - 1).Columns(13)
End With
'
' Parcourir la liste des textes
For iTexte = 1 To UBound(Textes)
'
' Récupérer le numéro du texte dans la feuille
Num = ThisWorkbook.Sheets("Page 1").Cells(iTexte + 1, 1)
'
' Eclater le texte par saut de ligne
Notes = Split(Textes(iTexte, 1), vbLf) '
'
' Parcourir le tableau résultant
For iNote = 0 To UBound(Notes)
'
' Pour chaque ligne finissant par "(Note de travail")
If Right(Notes(iNote), 18) = "(Notes de travail)" Then
'
' Rajouter un indicateur en début
Notes(iNote) = "toto : " & Notes(iNote)
End If
Next iNote
'
' Créer un nouveau tableau de notes
' comportant les items commençant par "Toto"
Notes = Split(Join(Notes, vbLf), "toto : ")
'
' Créer un tableau de lignes en conséquences
ReDim Lignes(1 To UBound(Notes), 1 To 2)
'
' Re parcourir le tableau de notes pour charger le tableau de lignes
For iNote = 1 To UBound(Notes)
If Notes(iNote) <> "" Then
Lignes(iNote, 1) = Num
' Récupère la note en enlevant les retours à la ligne
' Peut-être prévoir un remplacement par espace ou simplement la note telle-quelle
Lignes(iNote, 2) = Application.Clean(Notes(iNote))
End If
Next iNote
'
' Le tableau de lignes dans la feuille
ThisWorkbook.Sheets("Notes").Cells(Rows.Count, 1).End(xlUp)(1).Resize(UBound(Lignes), 2) = Lignes
Next
End Sub