OVH Cloud OVH Cloud

Concaténer les 1ères lettres de chaque mot

7 réponses
Avatar
Grégory
Bonjour,

2eme question de la matinée…
Je souhaiterai écrire une macro qui, à partir d'une chaîne de caractère
contenue dans une cellule, prend la 1ère lettre de chaque mot et les
concatène ensemble en les mettant en majuscule.

Par ex: "Ceci est un exemple" = CEUE

Comment faire?
En effet, je ne me souviens plus comment détecter les caractères spéciaux,
type "fin de chaîne", "retour chariot"...

D'avance merci,

Grégory

7 réponses

Avatar
docm
Bonjour Grégory.

Voici une technique qui fonctionne avec toutes les versions d'Excel :

a = Trim([a1]) & " "
rr = ""
While InStr(a, " ") > 0
rr = rr & Left(a, 1)
a = Mid(a, InStr(a, " ") + 1)
Wend
rr = UCase(a)

Amicalement

docm

"Grégory" wrote in message
news:
Bonjour,

2eme question de la matinée.
Je souhaiterai écrire une macro qui, à partir d'une chaîne de caractère
contenue dans une cellule, prend la 1ère lettre de chaque mot et les
concatène ensemble en les mettant en majuscule.

Par ex: "Ceci est un exemple" = CEUE

Comment faire?
En effet, je ne me souviens plus comment détecter les caractères spéciaux,
type "fin de chaîne", "retour chariot"...

D'avance merci,

Grégory


Avatar
JLuc
a = Trim([a1]) & " "
rr = ""
While InStr(a, " ") > 0
rr = rr & Left(a, 1)
a = Mid(a, InStr(a, " ") + 1)
Wend
rr = UCase(a)


C'est rr = UCase(rr) 'pas de a

--
JLuc

Avatar
AV
| Par ex: "Ceci est un exemple" = CEUE

XL2000 et plus :

Sub zzInitiales()
For i = 0 To UBound(x)
z = z & Left(Split([A1], " ")(i), 1)
Next i
MsgBox UCase(z)
End Sub

AV
Avatar
JLuc
Par ex: "Ceci est un exemple" = CEUE


XL2000 et plus :

Sub zzInitiales()
For i = 0 To UBound(x)
z = z & Left(Split([A1], " ")(i), 1)
Next i
MsgBox UCase(z)
End Sub

AV


Ca va pas marché :')

Function avZZ(ByVal cellule as range)
x = Split(cellule, " ")
For i = Lbound(x) To UBound(x)
z = z & UCase(Left(x(i), 1))
Next
avZZ = z
End Function

:oÞ :oÞ ;-)

--
JLuc


Avatar
JB
Bonjour,

http://cjoint.com/?fjrvUxwRXQ

Dans un module:

Function prem(mot)
temp = Split(mot, " ")
For i = 0 To UBound(temp)
prem = prem & Left(temp(i), 1)
Next i
End Function

Dans le tableur:

=Prem(A1) si A1 contient la chaine de mots

Cordialement JB
Avatar
AV
| Ca va pas marché :')

Comme tu dis...
Faudrait voir à pas laisser des morceaux en route !

AV
Avatar
JLuc
*Bonjour AV*,
Faudrait voir à pas laisser des morceaux en route !
C'est de la gomme, que tu as laissé, démarrage trop rapide lol


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O