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

Fonction pour traitement caractère

2 réponses
Avatar
Kévin
Salut,

Je cherche une proc=E9dure en vba qui me permetrait de faire=20
ceci sur une chaine de caract=E8res:

Si le caract=E8re de la cha=EEne est une majuscule ou le=20
signe "(" et que ce carat=E8re n'est pas le premier de la=20
cha=EEne... alors ins=E9rer un espace avant ce carat=E8re.

Voici un exemple: "MonPremierFichier(Window).exe"=20
deviendrait "Mon Premier Fichier (Window).exe"

Pouvez-vous m'aider?

Merci d'avance.

K=E9vin

2 réponses

Avatar
JpPradier
Bonjour Kévin

Tu places la fonction ci-dessous dans un module standard. Puis si ton texte est en A1, tu mets dans
une cellule :
=ChercheMaj(A1)

j-p


Function ChercheMaj(Letexte As String)
For i = 65 To 91
Letexte = Replace(Letexte, Chr(i), " " & Chr(i))
Next
Letexte = Replace(Letexte, "( ", "(")
Letexte = Replace(Letexte, "(", "(")
ChercheMaj = Mid(Letexte, 2)
End Function
Avatar
Kobaya
Salut Kevin,

Tu peux aussi essayer ça :

Public Function Formatage(Phrase As String) As String
Dim lngLon As Long, lngL As Long

lngLon = Len(Phrase)

Formatage = Left(Phrase, 1)
For lngL = 2 To lngLon
If (Asc(Mid(Phrase, lngL, 1)) >= 65 And Asc(Mid(Phrase, lngL, 1)) <=
90) Or _
Mid(Phrase, lngL, 1) = "(" Then
If Mid(Phrase, lngL - 1, 1) <> "(" Then
Formatage = Formatage & " " & Mid(Phrase, lngL, 1)
Else
Formatage = Formatage & Mid(Phrase, lngL, 1)
End If
Else
Formatage = Formatage & Mid(Phrase, lngL, 1)
End If
Next
End Function

Kobaya.


"Kévin" wrote:

Salut,

Je cherche une procédure en vba qui me permetrait de faire
ceci sur une chaine de caractères:

Si le caractère de la chaîne est une majuscule ou le
signe "(" et que ce caratère n'est pas le premier de la
chaîne... alors insérer un espace avant ce caratère.

Voici un exemple: "MonPremierFichier(Window).exe"
deviendrait "Mon Premier Fichier (Window).exe"

Pouvez-vous m'aider?

Merci d'avance.

Kévin