OVH Cloud OVH Cloud

1ère lettre d'un mot en majuscule

13 réponses
Avatar
Congelator
Salut tout le monde,

J'ai encore besoin d'un coup de main. J'arrive à faire qu'à la sortie du
champ, le mot se mette automatiquement en majuscule ou minuscule mais comment
faire pour n'avoir que la 1ère lettre en majuscule (j'ai proposé à
l'utilisateur de presser sur la touche "shift" mais ma réponse ne lui a pas
plu... :-))

Merci d'avance.
--
Céd / Lausanne

3 réponses

1 2
Avatar
Guy Lafrenière
Bonjour Congelator,

Le code de bouchito ne fonctionne pas parce qu'il manque une parenthèse
fermante dans la première moitié.

Au lieu de se lire comme ceci:
TONTEXTE = Ucase(left(trim( TONTEXTE),1) & mid(trim(TONTEXTE),2)

Le code de bouchito devrait se lire comme suit:
TONTEXTE = Ucase(left(trim( TONTEXTE),1)) & mid(trim(TONTEXTE),2)

Je ne suis pas sûr de bien comprendre ce que tu cherches réellement.

Si tu veux seulement mettre le premier caractère en majuscule, la procédure
suivante devrait suffire:
Private Sub TextBox1_LostFocus()
With TextBox1
.Text = UCase(Left(Trim(.Text),1)) & Mid(Trim(.Text),2)
End With
End Sub

Si tu veux traiter correctement la casse de tous les caractères dans un
prénom ou un nom, je te suggère le code suivant:

Private Sub TextBox1_LostFocus()
With TextBox1
.Text = CorrigerNom(.Text)
End With
End Sub

'---------------------------------------------------------------------------
' FUNCTION CorrigerNom
' Description:
' Corriger un prénom ou un nom pour que les majuscules soient au bon
' endroit et qu'il n'y ait pas d'espace ou de caractère inutile
' Paramètres:
' strNom Nom à corriger
' Return:
' Un string contenant le nom corrigé
'---------------------------------------------------------------------------

Public Function CorrigerNom(ByVal strNom As String) As String

Dim strNouveauNom As String
Dim intLongueurNom As Integer
Dim intCaractère As Integer, strCaractère As String, blnCaractèreSpécial
As Boolean
Dim intPositionPairePrécédente As Integer, strPairePrécédente As String

On Error GoTo Erreur

strNom = Trim(strNom)
strNouveauNom = ""

CorrigerNom = strNom

' Supprimer un double espace.
Do
If InStr(strNom, " ") = 0 Then
Exit Do
Else
strNom = StripDoubleCharacter(strNom, " ", 2)
End If
Loop

' Supprimer un double tiret.
Do
If InStr(strNom, "--") = 0 Then
Exit Do
Else
strNom = StripDoubleCharacter(strNom, "--", 2)
End If
Loop

' Supprimer un espace qui précède un tiret.
Do
If InStr(strNom, " -") = 0 Then
Exit Do
Else
strNom = StripDoubleCharacter(strNom, " -", 1)
End If
Loop

' Supprimer un espace qui suit un tiret.
Do
If InStr(strNom, "- ") = 0 Then
Exit Do
Else
strNom = StripDoubleCharacter(strNom, "- ", 2)
End If
Loop

' Supprimer un espace qui suit une parenthèse ouvrante.
Do
If InStr(strNom, "( ") = 0 Then
Exit Do
Else
strNom = StripDoubleCharacter(strNom, "( ", 2)
End If
Loop

' Supprimer un espace qui précède une parenthèse fermante.
Do
If InStr(strNom, " )") = 0 Then
Exit Do
Else
strNom = StripDoubleCharacter(strNom, " )", 1)
End If
Loop

' Supprimer un double apostrophe.
Do
If InStr(strNom, "''") = 0 Then
Exit Do
Else
strNom = StripDoubleCharacter(strNom, "''", 1)
End If
Loop

' Supprimer une double parenthèse ouvrante.
Do
If InStr(strNom, "((") = 0 Then
Exit Do
Else
strNom = StripDoubleCharacter(strNom, "((", 2)
End If
Loop

' Supprimer une double parenthèse fermante.
Do
If InStr(strNom, "))") = 0 Then
Exit Do
Else
strNom = StripDoubleCharacter(strNom, "))", 2)
End If
Loop

intLongueurNom = Len(strNom)

blnCaractèreSpécial = False

' Traiter les caractères un à un pour déterminer la casse appropriée.
For intCaractère = 1 To intLongueurNom

strCaractère = Mid(strNom, intCaractère, 1)

' Le premier caractère est toujours en majuscule.
If intCaractère = 1 Then
strCaractère = UCase(strCaractère)

' Si le caractère précédent était un caractère spécial: ( ou '
u - ou espace
ElseIf blnCaractèreSpécial = True Then
' Le caractère courant est mis en majuscule.
strCaractère = UCase(strCaractère)
If strCaractère <> "(" Then
blnCaractèreSpécial = False
End If
Else

' Si le caractère courant est un caractère spécial.
If strCaractère = " " Or strCaractère = "'" Or strCaractère "-" Or _
strCaractère = "(" Or strCaractère = ")" Then
' Le drapeau de caractère spécial est activé.
blnCaractèreSpécial = True

Else

' Le caractère courant est mis en minuscule (sauf pour les
noms Mc).
intPositionPairePrécédente = intCaractère - 2
If intPositionPairePrécédente >= 1 Then
strPairePrécédente = Mid(strNom,
intPositionPairePrécédente, 2)
If UCase(strPairePrécédente) = "MC" Then
strCaractère = UCase(strCaractère)
Else
strCaractère = LCase(strCaractère)
End If
Else
strCaractère = LCase(strCaractère)
End If
' Le drapeau de caractère spécial est désactivé.
blnCaractèreSpécial = False

End If

End If

strNouveauNom = strNouveauNom & strCaractère

Next intCaractère

CorrigerNom = strNouveauNom

Exit Function

Erreur:

Dim strMessage As String
CorrigerNom = strNom
strMessage = "Une erreur est survenue pendant la correction d'un nom." &
_
vbCrLf & Err.Description
MsgBox strMessage, vbOKOnly + vbCritical, "Erreur"

End Function



'---------------------------------------------------------------------------
------------
' FUNCTION StripDoubleCharacter
' Description:
' Supprimer un des deux caractères répétés
' Paramètres:
' strChaîneComplète Chaîne de caractères contenant les
caractères répétés
' strChaîneRecherchée Chaîne des caractères répétés
' blnDeleteSecondCharacter True si on supprime le premier caractère
' False si on supprime le premier caractère
' Return:
' Un string contenant le texte corrigé
'---------------------------------------------------------------------------
------------

Public Function StripDoubleCharacter(ByVal strChaîneComplète As String, _
ByVal
strChaîneRecherchée As String, _
Optional ByVal
intPositionDelete As Integer = 2) _
As String

Dim intPosition As Integer
Dim strDébutChaîne As String, strFinChaîne As String

On Error GoTo Erreur

intPosition = InStr(strChaîneComplète, strChaîneRecherchée)
If intPosition > 0 Then
If intPositionDelete = 1 Then
strDébutChaîne = Left(strChaîneComplète, intPosition)
strFinChaîne = Mid(strChaîneComplète, intPosition + 2)
ElseIf intPositionDelete = 2 Then
strDébutChaîne = Left(strChaîneComplète, intPosition - 1)
strFinChaîne = Mid(strChaîneComplète, intPosition + 1)
End If
StripDoubleCharacter = strDébutChaîne & strFinChaîne
Else
StripDoubleCharacter = strChaîneComplète
End If

Exit Function

Erreur:

Err.Raise Err.Number, "MLibrairie:StripDoubleCharacter", Err.Description

End Function


Tu auras remarqué que la fonction CorrigerNom traite le cas des parenthèses.
Voici l'explication.
Dans le cas d'une femme mariée portant les deux noms (le sien et celui de
son mari), on devrait écrire comme ceci:
Mme Lucie Dubuc-Lafleur.
Plusieurs personnes écrivent plutôt comme ceci:
Mme Lucie (Dubuc) Lafleur.

Mon code n'est pas un modèle de code compact. J'ai choisi d'écrire un code
redondant pour arriver à déboguer ma fonction plus facilement.

J'ai tenté de prévoir tous les types de noms qu'on peut rencontrer mais je
ne peux pas garantir que je n'ai pas omis quelques cas qui ne me sont pas
venu à l'esprit.

Espérant le tout utile, je te salue amicalement.

Guy Lafrenière

----------------------------------------------------------------------------
--

"Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message de
news:
Salut bouchito,

Merci pour l'info mais malheureusement ça ne foncitonne pas, ça m'affiche
TOUT le texte en majuscule...
--
Céd / Lausanne


"" a écrit :

> utlise à la sortie de ton champ
>
> TONTEXTE = Ucase(left(trim( TONTEXTE),1) & mid(trim(TONTEXTE),2)
>
> sinon autre solution:
> au niveau du keypress, tu peux renvoyer le caractère majuscule de la
> lettre tapée au lieu de celle-ci.
>
>


Avatar
Congelator
WOUAOOO !!!!! Fabuleux !! Heureusement que j'étais assis !

Mon "petit" problème était de simplement faciliter la saisie des
utilisateurs en faisant en sorte qu'à la sortie du champs, les prénoms se
mettent automatiquement avec la 1ère lettre en majuscule. Après avoir reçu
les 1ers codes (encore merci à tous) je me suis rendu compte que ma question
était mal formulée et ne tenait pas compte des prénoms composés. Avec ton
code, je crois bien que tu as vu toutes les possibilités.

Un GRAND MERCI Guy.
--
Céd / Lausanne


"Guy Lafrenière" a écrit :

Bonjour Congelator,

Le code de bouchito ne fonctionne pas parce qu'il manque une parenthèse
fermante dans la première moitié.

Au lieu de se lire comme ceci:
TONTEXTE = Ucase(left(trim( TONTEXTE),1) & mid(trim(TONTEXTE),2)

Le code de bouchito devrait se lire comme suit:
TONTEXTE = Ucase(left(trim( TONTEXTE),1)) & mid(trim(TONTEXTE),2)

Je ne suis pas sûr de bien comprendre ce que tu cherches réellement.

Si tu veux seulement mettre le premier caractère en majuscule, la procédure
suivante devrait suffire:
Private Sub TextBox1_LostFocus()
With TextBox1
.Text = UCase(Left(Trim(.Text),1)) & Mid(Trim(.Text),2)
End With
End Sub

Si tu veux traiter correctement la casse de tous les caractères dans un
prénom ou un nom, je te suggère le code suivant:

Private Sub TextBox1_LostFocus()
With TextBox1
.Text = CorrigerNom(.Text)
End With
End Sub

'---------------------------------------------------------------------------
' FUNCTION CorrigerNom
' Description:
' Corriger un prénom ou un nom pour que les majuscules soient au bon
' endroit et qu'il n'y ait pas d'espace ou de caractère inutile
' Paramètres:
' strNom Nom à corriger
' Return:
' Un string contenant le nom corrigé
'---------------------------------------------------------------------------

Public Function CorrigerNom(ByVal strNom As String) As String

Dim strNouveauNom As String
Dim intLongueurNom As Integer
Dim intCaractère As Integer, strCaractère As String, blnCaractèreSpécial
As Boolean
Dim intPositionPairePrécédente As Integer, strPairePrécédente As String

On Error GoTo Erreur

strNom = Trim(strNom)
strNouveauNom = ""

CorrigerNom = strNom

' Supprimer un double espace.
Do
If InStr(strNom, " ") = 0 Then
Exit Do
Else
strNom = StripDoubleCharacter(strNom, " ", 2)
End If
Loop

' Supprimer un double tiret.
Do
If InStr(strNom, "--") = 0 Then
Exit Do
Else
strNom = StripDoubleCharacter(strNom, "--", 2)
End If
Loop

' Supprimer un espace qui précède un tiret.
Do
If InStr(strNom, " -") = 0 Then
Exit Do
Else
strNom = StripDoubleCharacter(strNom, " -", 1)
End If
Loop

' Supprimer un espace qui suit un tiret.
Do
If InStr(strNom, "- ") = 0 Then
Exit Do
Else
strNom = StripDoubleCharacter(strNom, "- ", 2)
End If
Loop

' Supprimer un espace qui suit une parenthèse ouvrante.
Do
If InStr(strNom, "( ") = 0 Then
Exit Do
Else
strNom = StripDoubleCharacter(strNom, "( ", 2)
End If
Loop

' Supprimer un espace qui précède une parenthèse fermante.
Do
If InStr(strNom, " )") = 0 Then
Exit Do
Else
strNom = StripDoubleCharacter(strNom, " )", 1)
End If
Loop

' Supprimer un double apostrophe.
Do
If InStr(strNom, "''") = 0 Then
Exit Do
Else
strNom = StripDoubleCharacter(strNom, "''", 1)
End If
Loop

' Supprimer une double parenthèse ouvrante.
Do
If InStr(strNom, "((") = 0 Then
Exit Do
Else
strNom = StripDoubleCharacter(strNom, "((", 2)
End If
Loop

' Supprimer une double parenthèse fermante.
Do
If InStr(strNom, "))") = 0 Then
Exit Do
Else
strNom = StripDoubleCharacter(strNom, "))", 2)
End If
Loop

intLongueurNom = Len(strNom)

blnCaractèreSpécial = False

' Traiter les caractères un à un pour déterminer la casse appropriée.
For intCaractère = 1 To intLongueurNom

strCaractère = Mid(strNom, intCaractère, 1)

' Le premier caractère est toujours en majuscule.
If intCaractère = 1 Then
strCaractère = UCase(strCaractère)

' Si le caractère précédent était un caractère spécial: ( ou '
u - ou espace
ElseIf blnCaractèreSpécial = True Then
' Le caractère courant est mis en majuscule.
strCaractère = UCase(strCaractère)
If strCaractère <> "(" Then
blnCaractèreSpécial = False
End If
Else

' Si le caractère courant est un caractère spécial.
If strCaractère = " " Or strCaractère = "'" Or strCaractère > "-" Or _
strCaractère = "(" Or strCaractère = ")" Then
' Le drapeau de caractère spécial est activé.
blnCaractèreSpécial = True

Else

' Le caractère courant est mis en minuscule (sauf pour les
noms Mc).
intPositionPairePrécédente = intCaractère - 2
If intPositionPairePrécédente >= 1 Then
strPairePrécédente = Mid(strNom,
intPositionPairePrécédente, 2)
If UCase(strPairePrécédente) = "MC" Then
strCaractère = UCase(strCaractère)
Else
strCaractère = LCase(strCaractère)
End If
Else
strCaractère = LCase(strCaractère)
End If
' Le drapeau de caractère spécial est désactivé.
blnCaractèreSpécial = False

End If

End If

strNouveauNom = strNouveauNom & strCaractère

Next intCaractère

CorrigerNom = strNouveauNom

Exit Function

Erreur:

Dim strMessage As String
CorrigerNom = strNom
strMessage = "Une erreur est survenue pendant la correction d'un nom." &
_
vbCrLf & Err.Description
MsgBox strMessage, vbOKOnly + vbCritical, "Erreur"

End Function



'---------------------------------------------------------------------------
------------
' FUNCTION StripDoubleCharacter
' Description:
' Supprimer un des deux caractères répétés
' Paramètres:
' strChaîneComplète Chaîne de caractères contenant les
caractères répétés
' strChaîneRecherchée Chaîne des caractères répétés
' blnDeleteSecondCharacter True si on supprime le premier caractère
' False si on supprime le premier caractère
' Return:
' Un string contenant le texte corrigé
'---------------------------------------------------------------------------
------------

Public Function StripDoubleCharacter(ByVal strChaîneComplète As String, _
ByVal
strChaîneRecherchée As String, _
Optional ByVal
intPositionDelete As Integer = 2) _
As String

Dim intPosition As Integer
Dim strDébutChaîne As String, strFinChaîne As String

On Error GoTo Erreur

intPosition = InStr(strChaîneComplète, strChaîneRecherchée)
If intPosition > 0 Then
If intPositionDelete = 1 Then
strDébutChaîne = Left(strChaîneComplète, intPosition)
strFinChaîne = Mid(strChaîneComplète, intPosition + 2)
ElseIf intPositionDelete = 2 Then
strDébutChaîne = Left(strChaîneComplète, intPosition - 1)
strFinChaîne = Mid(strChaîneComplète, intPosition + 1)
End If
StripDoubleCharacter = strDébutChaîne & strFinChaîne
Else
StripDoubleCharacter = strChaîneComplète
End If

Exit Function

Erreur:

Err.Raise Err.Number, "MLibrairie:StripDoubleCharacter", Err.Description

End Function


Tu auras remarqué que la fonction CorrigerNom traite le cas des parenthèses.
Voici l'explication.
Dans le cas d'une femme mariée portant les deux noms (le sien et celui de
son mari), on devrait écrire comme ceci:
Mme Lucie Dubuc-Lafleur.
Plusieurs personnes écrivent plutôt comme ceci:
Mme Lucie (Dubuc) Lafleur.

Mon code n'est pas un modèle de code compact. J'ai choisi d'écrire un code
redondant pour arriver à déboguer ma fonction plus facilement.

J'ai tenté de prévoir tous les types de noms qu'on peut rencontrer mais je
ne peux pas garantir que je n'ai pas omis quelques cas qui ne me sont pas
venu à l'esprit.

Espérant le tout utile, je te salue amicalement.

Guy Lafrenière

----------------------------------------------------------------------------
--

"Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message de
news:
> Salut bouchito,
>
> Merci pour l'info mais malheureusement ça ne foncitonne pas, ça m'affiche
> TOUT le texte en majuscule...
> --
> Céd / Lausanne
>
>
> "" a écrit :
>
> > utlise à la sortie de ton champ
> >
> > TONTEXTE = Ucase(left(trim( TONTEXTE),1) & mid(trim(TONTEXTE),2)
> >


Avatar
Guy Lafrenière
Bien heureux d'avoir pu te rendre service!

Guy Lafrenière

"Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message de
news:
WOUAOOO !!!!! Fabuleux !! Heureusement que j'étais assis !

Mon "petit" problème était de simplement faciliter la saisie des
utilisateurs en faisant en sorte qu'à la sortie du champs, les prénoms se
mettent automatiquement avec la 1ère lettre en majuscule. Après avoir reçu
les 1ers codes (encore merci à tous) je me suis rendu compte que ma


question
était mal formulée et ne tenait pas compte des prénoms composés. Avec ton
code, je crois bien que tu as vu toutes les possibilités.

Un GRAND MERCI Guy.
--
Céd / Lausanne


"Guy Lafrenière" a écrit :

> Bonjour Congelator,
>
> Le code de bouchito ne fonctionne pas parce qu'il manque une parenthèse
> fermante dans la première moitié.
>
> Au lieu de se lire comme ceci:
> TONTEXTE = Ucase(left(trim( TONTEXTE),1) & mid(trim(TONTEXTE),2)
>
> Le code de bouchito devrait se lire comme suit:
> TONTEXTE = Ucase(left(trim( TONTEXTE),1)) & mid(trim(TONTEXTE),2)
>
> Je ne suis pas sûr de bien comprendre ce que tu cherches réellement.
>
> Si tu veux seulement mettre le premier caractère en majuscule, la


procédure
> suivante devrait suffire:
> Private Sub TextBox1_LostFocus()
> With TextBox1
> .Text = UCase(Left(Trim(.Text),1)) & Mid(Trim(.Text),2)
> End With
> End Sub
>
> Si tu veux traiter correctement la casse de tous les caractères dans un
> prénom ou un nom, je te suggère le code suivant:
>
> Private Sub TextBox1_LostFocus()
> With TextBox1
> .Text = CorrigerNom(.Text)
> End With
> End Sub
>
>


'---------------------------------------------------------------------------
> ' FUNCTION CorrigerNom
> ' Description:
> ' Corriger un prénom ou un nom pour que les majuscules soient au


bon
> ' endroit et qu'il n'y ait pas d'espace ou de caractère inutile
> ' Paramètres:
> ' strNom Nom à corriger
> ' Return:
> ' Un string contenant le nom corrigé
>


'---------------------------------------------------------------------------
>
> Public Function CorrigerNom(ByVal strNom As String) As String
>
> Dim strNouveauNom As String
> Dim intLongueurNom As Integer
> Dim intCaractère As Integer, strCaractère As String,


blnCaractèreSpécial
> As Boolean
> Dim intPositionPairePrécédente As Integer, strPairePrécédente As


String
>
> On Error GoTo Erreur
>
> strNom = Trim(strNom)
> strNouveauNom = ""
>
> CorrigerNom = strNom
>
> ' Supprimer un double espace.
> Do
> If InStr(strNom, " ") = 0 Then
> Exit Do
> Else
> strNom = StripDoubleCharacter(strNom, " ", 2)
> End If
> Loop
>
> ' Supprimer un double tiret.
> Do
> If InStr(strNom, "--") = 0 Then
> Exit Do
> Else
> strNom = StripDoubleCharacter(strNom, "--", 2)
> End If
> Loop
>
> ' Supprimer un espace qui précède un tiret.
> Do
> If InStr(strNom, " -") = 0 Then
> Exit Do
> Else
> strNom = StripDoubleCharacter(strNom, " -", 1)
> End If
> Loop
>
> ' Supprimer un espace qui suit un tiret.
> Do
> If InStr(strNom, "- ") = 0 Then
> Exit Do
> Else
> strNom = StripDoubleCharacter(strNom, "- ", 2)
> End If
> Loop
>
> ' Supprimer un espace qui suit une parenthèse ouvrante.
> Do
> If InStr(strNom, "( ") = 0 Then
> Exit Do
> Else
> strNom = StripDoubleCharacter(strNom, "( ", 2)
> End If
> Loop
>
> ' Supprimer un espace qui précède une parenthèse fermante.
> Do
> If InStr(strNom, " )") = 0 Then
> Exit Do
> Else
> strNom = StripDoubleCharacter(strNom, " )", 1)
> End If
> Loop
>
> ' Supprimer un double apostrophe.
> Do
> If InStr(strNom, "''") = 0 Then
> Exit Do
> Else
> strNom = StripDoubleCharacter(strNom, "''", 1)
> End If
> Loop
>
> ' Supprimer une double parenthèse ouvrante.
> Do
> If InStr(strNom, "((") = 0 Then
> Exit Do
> Else
> strNom = StripDoubleCharacter(strNom, "((", 2)
> End If
> Loop
>
> ' Supprimer une double parenthèse fermante.
> Do
> If InStr(strNom, "))") = 0 Then
> Exit Do
> Else
> strNom = StripDoubleCharacter(strNom, "))", 2)
> End If
> Loop
>
> intLongueurNom = Len(strNom)
>
> blnCaractèreSpécial = False
>
> ' Traiter les caractères un à un pour déterminer la casse


appropriée.
> For intCaractère = 1 To intLongueurNom
>
> strCaractère = Mid(strNom, intCaractère, 1)
>
> ' Le premier caractère est toujours en majuscule.
> If intCaractère = 1 Then
> strCaractère = UCase(strCaractère)
>
> ' Si le caractère précédent était un caractère spécial: ( ou


'
> u - ou espace
> ElseIf blnCaractèreSpécial = True Then
> ' Le caractère courant est mis en majuscule.
> strCaractère = UCase(strCaractère)
> If strCaractère <> "(" Then
> blnCaractèreSpécial = False
> End If
> Else
>
> ' Si le caractère courant est un caractère spécial.
> If strCaractère = " " Or strCaractère = "'" Or strCaractère


> > "-" Or _
> strCaractère = "(" Or strCaractère = ")" Then
> ' Le drapeau de caractère spécial est activé.
> blnCaractèreSpécial = True
>
> Else
>
> ' Le caractère courant est mis en minuscule (sauf pour


les
> noms Mc).
> intPositionPairePrécédente = intCaractère - 2
> If intPositionPairePrécédente >= 1 Then
> strPairePrécédente = Mid(strNom,
> intPositionPairePrécédente, 2)
> If UCase(strPairePrécédente) = "MC" Then
> strCaractère = UCase(strCaractère)
> Else
> strCaractère = LCase(strCaractère)
> End If
> Else
> strCaractère = LCase(strCaractère)
> End If
> ' Le drapeau de caractère spécial est désactivé.
> blnCaractèreSpécial = False
>
> End If
>
> End If
>
> strNouveauNom = strNouveauNom & strCaractère
>
> Next intCaractère
>
> CorrigerNom = strNouveauNom
>
> Exit Function
>
> Erreur:
>
> Dim strMessage As String
> CorrigerNom = strNom
> strMessage = "Une erreur est survenue pendant la correction d'un


nom." &
> _
> vbCrLf & Err.Description
> MsgBox strMessage, vbOKOnly + vbCritical, "Erreur"
>
> End Function
>
>
>
>


'---------------------------------------------------------------------------
> ------------
> ' FUNCTION StripDoubleCharacter
> ' Description:
> ' Supprimer un des deux caractères répétés
> ' Paramètres:
> ' strChaîneComplète Chaîne de caractères contenant les
> caractères répétés
> ' strChaîneRecherchée Chaîne des caractères répétés
> ' blnDeleteSecondCharacter True si on supprime le premier


caractère
> ' False si on supprime le premier


caractère
> ' Return:
> ' Un string contenant le texte corrigé
>


'---------------------------------------------------------------------------
> ------------
>
> Public Function StripDoubleCharacter(ByVal strChaîneComplète As String,


_
> ByVal
> strChaîneRecherchée As String, _
> Optional


ByVal
> intPositionDelete As Integer = 2) _
> As String
>
> Dim intPosition As Integer
> Dim strDébutChaîne As String, strFinChaîne As String
>
> On Error GoTo Erreur
>
> intPosition = InStr(strChaîneComplète, strChaîneRecherchée)
> If intPosition > 0 Then
> If intPositionDelete = 1 Then
> strDébutChaîne = Left(strChaîneComplète, intPosition)
> strFinChaîne = Mid(strChaîneComplète, intPosition + 2)
> ElseIf intPositionDelete = 2 Then
> strDébutChaîne = Left(strChaîneComplète, intPosition - 1)
> strFinChaîne = Mid(strChaîneComplète, intPosition + 1)
> End If
> StripDoubleCharacter = strDébutChaîne & strFinChaîne
> Else
> StripDoubleCharacter = strChaîneComplète
> End If
>
> Exit Function
>
> Erreur:
>
> Err.Raise Err.Number, "MLibrairie:StripDoubleCharacter",


Err.Description
>
> End Function
>
>
> Tu auras remarqué que la fonction CorrigerNom traite le cas des


parenthèses.
> Voici l'explication.
> Dans le cas d'une femme mariée portant les deux noms (le sien et celui


de
> son mari), on devrait écrire comme ceci:
> Mme Lucie Dubuc-Lafleur.
> Plusieurs personnes écrivent plutôt comme ceci:
> Mme Lucie (Dubuc) Lafleur.
>
> Mon code n'est pas un modèle de code compact. J'ai choisi d'écrire un


code
> redondant pour arriver à déboguer ma fonction plus facilement.
>
> J'ai tenté de prévoir tous les types de noms qu'on peut rencontrer mais


je
> ne peux pas garantir que je n'ai pas omis quelques cas qui ne me sont


pas
> venu à l'esprit.
>
> Espérant le tout utile, je te salue amicalement.
>
> Guy Lafrenière
>

--------------------------------------------------------------------------


--
> --
>
> "Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message


de
> news:
> > Salut bouchito,
> >
> > Merci pour l'info mais malheureusement ça ne foncitonne pas, ça


m'affiche
> > TOUT le texte en majuscule...
> > --
> > Céd / Lausanne
> >
> >
> > "" a écrit :
> >
> > > utlise à la sortie de ton champ
> > >
> > > TONTEXTE = Ucase(left(trim( TONTEXTE),1) & mid(trim(TONTEXTE),2)
> > >


1 2