Option Explicit
Sub Essai()
  Dim n&: n = Cells(Rows.Count, 6).End(3).Row 'n = dernière ligne utilisée,
  'selon la colonne F ; car 6 = colonne F et 3 = xlUp ; si y'a aucune donnée
  'dans le tableau (donc tableau vide avec en-têtes seulement), alors n = 8
  'car la ligne d'en-têtes est la ligne n° 8 ; dans l'exemple, n = 15 car
  'la dernière donnée est en F15.
  If n = 8 Then Exit Sub 'sortie si n = 8 car aucune donnée => y'a rien à faire :
  'aucune chaîne de caractères à traiter ; comme n = 15, on ne sort pas, et donc
  'on va faire la suite du code VBA.
  Dim T, s1$, s2$, c1$, c2%, p%, k%, i& 'déclaration de plusieurs variables
  n = n - 8 'j'enlève 8 car il y a 8 lignes au-dessus de la 1ère donnée qui
  'est en ligne 9 => n = 15 - 8 = 7 ; n est donc maintenant le nombre de
  'données, et tu peux vérifier qu'il y a bien 7 données de F9 à F15.
  T = [F9].Resize(n, 2) 'T est le tableau utilisé ; il y a n lignes, donc
  'autant de lignes que de données, ici 7 ; il y a 2 colonnes, la 1ère
  'pour les données de la colonne F ; la 2ème pour stocker les résultats
  'du traitement ; à la fin, on les écrira en colonne G, mais c'est pas
  'obligé de les mettre juste à droite ; on pourrait les écrire dans
  'une autre colonne.
  For i = 1 To n 'boucle pour traiter les n lignes du tableau T ; donc on va
  'faire la suite pour chacune des 7 lignes de T.
    s1 = T(i, 1): k = Len(s1) 's1 contient la donnée de la 1ère colonne de T,
    'donc la donnée de la colonne F ; k est la longueur de s1, donc le nombre
    'de caractères de la donnée.
 
    If k > 0 Then 'ce qui est dans ce If est exécuté seulement si la donnée est
    'd'au moins 1 caractère ; donc si y'a une cellule vide en colonne F, avant
    'la dernière donnée, alors pas de traitement pour la ligne en question :
    'on saute à la ligne qui est juste sous le End If.
 
      s2 = "" 's2 est la chaîne de caractères du résultat, qui doit être vide
      'au départ ; car comme on va y cumuler des caractères, il ne faut pas
      'que le résultat d'une ligne soit mélangé avec les résultats obtenus
      'avant sur les autres lignes (sinon, il y aurait des interférences).
   
      For p = 1 To k 'boucle pour chaque caractère de la donnée, de 1 à k ;
      'n'oublie pas que k est la longueur de la chaîne de caractères de s1.
   
        c1 = Mid$(s1, p, 1): c2 = Asc(c1) 'c1 est le p-ième caractère de s1,
        'et c2 est son code Ascii ; exemple : lettre A = 65, lettre Z = 90.
     
        If c2 >= 65 And c2 <= 90 Then s2 = s2 & c1 'on ajoute le caractère c1
        'dans s2, mais seulement si son code Ascii est entre 65 et 90 inclus,
        'donc si c'est une lettre de A à Z ; comme y'a « & », c'est bien une
        'concaténation : on ajoute les lettres au fur et à mesure dans s2.
     
      Next p 'caractère suivant
   
      If s2 <> "" Then T(i, 2) = s2 'on met s2 dans T(i,2) seulement si s2
      'n'est pas une chaîne de caractères vide ; en effet, s2 était vide
      'au départ, et il reste vide si y'a aucune lettre dans la donnée.
   
    End If
 
  Next i 'donnée suivante
  Application.ScreenUpdating = 0 'gel de l'écran : la mise à jour de l'écran
  'est désactivée pour la prochaine écriture des résultats sur la feuille de
  'calcul ; ça concerne juste une colonne, mais c'est quand même mieux s'il
  'y a plusieurs milliers de lignes.
  [G9].Resize(n) = Application.Index(T, Evaluate("Row(" & "1:" & n & ")"), 2)
  'écriture des résultats à partir de la cellule G9 ; c'est là où tu peux
  'choisir une autre colonne et une autre ligne pour la destination.
  'attention : sur cette ligne, ne change rien d'autre que G9 ! il faut
  'impérativement laisser le reste inchangé ! en effet, c'est toujours
  'pour n lignes de données (ici pour 7 données) ; de 1 à n lignes de T,
  'et pour la 2ème colonne de ce même tableau T ; donc 2 est bien la
  '2ème colonne de la variable tableau T, ce n'est pas la colonne B !
End Sub