chercher, trouver une fonction pour récupérer chaque mot d'une phrase

mig_59

XLDnaute Junior
Bonsoir le Forum et Bonne Année à tous

Après avoir longuement chercher, j'ai trouvé une fonction pour récupérer chaque mot d'une phrase en partant de gauche vers la droite
J'aimerais si possible récupérer chaque mot d'une phrase en partant cette fois ci de la droite vers la gauche

La cellule de départ serait par exemple Q9, R9 ou S9 pour aller vers la cellule B9
voir fichier joint

Merci pour votre aide
 

Pièces jointes

  • mig.xlsx
    11.4 KB · Affichages: 88
C

Compte Supprimé 979

Guest
Re : chercher, trouver une fonction pour récupérer chaque mot d'une phrase

Bonjour mig_59

Si tu as la solution de la gauche vers la droite, il suffit de l'inverser !?
Ou alors quelque chose m'échappe :(
 

mig_59

XLDnaute Junior
Re : chercher, trouver une fonction pour récupérer chaque mot d'une phrase

Bonsoir BrunoM45

J'y ai pensé mais vu la longueur de la fonction, a chaque fois que je tente une inversion j'ai systématiquement une erreur, voir même et j'en suis sûr plusieurs erreurs, en d'autre terme je m'en sort pas d'où ce post pour avoir une aide.
 
C

Compte Supprimé 979

Guest
Re : chercher, trouver une fonction pour récupérer chaque mot d'une phrase

Re,

C'est tellement plus simple avec du code ;) :)
VB:
Sub MàJDonnées()
  Dim Col As Integer, DLig As Long, Lig As Long
  Dim NumMot As Integer, sNom As String, TabMots() As String
  ' Initialiser les variables
  sNom = ""
  ' Avec la feuille qui porte le nom spécifié
  With Sheets("Feuil3")
    ' Trouver la dernière ligne remplie du tableau
    DLig = .Range("A" & Rows.Count).End(xlUp).Row
    ' Pour chaque ligne
    For Lig = 2 To DLig
      ' Initaliser LA colonne de résultat
      Col = 2
      ' Créer le tableau des mots
      TabMots = Split(.Range("A" & Lig), " ")
      ' Pour chaque mot
      For NumMot = 0 To UBound(TabMots)
        ' Si la première lettre est une majuscule
        ' et si le mot n'est pas numérique
        ' et si le mot ne commence pas par un parenthèse
        If Left(TabMots(NumMot), 1) = UCase(Left(TabMots(NumMot), 1)) _
          And Not IsNumeric(TabMots(NumMot)) And Left(TabMots(NumMot), 1) <> "(" Then
          ' Alors il s'agit d'un mot du nom
          sNom = sNom & TabMots(NumMot) & " "
        Else
          ' Si le nom ne contient aucun mot
          If sNom = "" Then
            ' Inscrire le mot
            Cells(Lig, Col).Value = TabMots(NumMot)
          Else
            ' sinon inscire le nom en supprimant l'espace de fin
            sNom = Left(sNom, Len(sNom) - 1)
            Cells(Lig, Col).Value = sNom
            Col = Col + 1
            Cells(Lig, Col).Value = TabMots(NumMot)
            sNom = ""
          End If
          ' Incrémenter le numéro de colonne
          Col = Col + 1
        End If
      Next NumMot
    Next Lig
  End With
End Sub

A tester sur "Feuil3" dans laquelle tu auras copié les cellules A1:A4

A+
 
Dernière modification par un modérateur:

mig_59

XLDnaute Junior
Re : chercher, trouver une fonction pour récupérer chaque mot d'une phrase

Re,

Effectivement, ca parait tellement plus simple en VBA, mais pas encore expert dans ce domaine et loin de l'être
Après essai manque la civilité (après le prénom et le nom) pour le reste c'est OK

Cordialement
 
C

Compte Supprimé 979

Guest
Re : chercher, trouver une fonction pour récupérer chaque mot d'une phrase

Re,

Edit : ok je n'avais pas fait attention :eek:

C'est fait, je viens de modifier le code précédent, il manquait l'inscription de la civilité
tout de suite après l'inscription du nom

Les lignes concernées sont
VB:
            ' sinon inscire le nom en supprimant l'espace de fin
            sNom = Left(sNom, Len(sNom) - 1)
            Cells(Lig, Col).Value = sNom
            Col = Col + 1
            Cells(Lig, Col).Value = TabMots(NumMot)

A+
 
Dernière modification par un modérateur:

mig_59

XLDnaute Junior
Re : chercher, trouver une fonction pour récupérer chaque mot d'une phrase

Re,

Merci BrunoM45, pour ta patience
Après avoir modifié ton code des choses bizard s'affichaient
Tout est redevenu à la normale après avoir enregistré le fichier en xlsm ton code (post #4) du début fonctionne à merveille
Un mot : PARFAIT
Merci encore

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 726
Membres
110 552
dernier inscrit
jasson