Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Récupérer un mot en majuscules dans une phrase

12 réponses
Avatar
Coriandre
Bonjour,

Dans une cellule (A1), une phrase variable contient un mot en majuscules,
variable aussi et de place variable dans la phrase.

Ce mot contient au moins 2 lettres (pour éliminer les mots contenant une
majuscule de début de phrase).

Je souhaite récupérer ce seul mot dans la cellule B1.
Si par hasard la phrase contient deux mots en majuscule, je ne souhaite
récupérer que le premier (le plus à gauche).
En utilisant des len, left et des Ucase, j'ai maladroitement tenté diverses
choses qui ne fontionnent pas bien.

Comment faire ?

Merci de votre aide.

--
Coriandre

2 réponses

1 2
Avatar
francois.forcet
On 7 mar, 14:22, "Coriandre" wrote:
a écrit dans le message denews:2beb1d3c-383
On 7 mar, 12:28, "Coriandre" wrote:

For i = 0 To UBound(Split(Range("A1")))
  If Split(Range("A1"), " ")(i) = UCase(Split(Range("A1"), " ")(i))
And Len(Split(Range("A1"), " ")(i)) > 1 Then
  Range("B1") = Split(Range("A1"), " ")(i)
  Exit For
  End If
  Next
--------------------------------------

Cela fonctionne très bien, à condition que la phrase ne contienne pas de
caractère type : ou ; etc. avant le mot en majuscules.

Mais je dois pouvoir adapter le code comme avec celui de Sitting Hoax.

Grand merci.

--
Coriandre


Je viens de comprendre ta condition mais chez moi ces caractères types
sont toujours suivi d'un blanc

Peut être pas pour toi

Avatar
Coriandre
a écrit dans le message de
news:
On 7 mar, 14:22, "Coriandre" wrote:
---------------------
Les caractères type (ou; etc) sont des mots à par entière
Si tu souhaites récupérer le 1° mots en majuscule ayant minimum 2
lettres tous ce qui est écrit en lettres dans ta phrase répondant au
critère du nombre est un résultat valable si tant est qu'il soit en
majuscule
Je ne vois pas quel code pourrais les différencier si ce n'est celui
qui prendrait en compte une liste d'exclusion établit
---------------------


Je ne sais pas si nous parlons de la même chose.
Pour préciser, j'évoquais les caractères suivants : deux points (:), point
virgule (;), les points d'interrogation (?), etc. qui peuvent se trouver
avant le mot en majuscules à extraire.

J'ai donc adapté ta macro ainsi :
---------------------------
Sub trouver_majuscule3()
For i = 0 To UBound(Split(Range("A1")))
If Split(Range("A1"), " ")(i) = UCase(Split(Range("A1"), " ")(i))
And Len(Split(Range("A1"), " ")(i)) > 1 Then

'Condition pour éliminer les caractères en question :
If Asc(Split(Range("A1"), " ")(i)) > 64 And _
Asc(Split(Range("A1"), " ")(i)) < 91 Then

Range("B1") = Split(Range("A1"), " ")(i)
Exit For
End If
End If
Next i
------------------------------

et cela fonctionne alors très bien.

Merci de ton aide !

--
Coriandre

1 2