Mettre la première lettre des mots en Majuscules

Bonjour le forum,

J'ai trouvé cette macro il y a un moment déjà et je voudrais mettre la première lettre des mots en majuscule.

Où dois-je intervenir dans cette macro?

Merci d'avance

Bien cordialement

Option Explicit

'***********

' Devise=0 aucune

' =1 Euro €

' =2 Dollar $

' Langue=0 Français

' =1 Belgique

' =2 Suisse

'***********

' Conversion limitée à 999 999 999 999 999 ou 9 999 999 999 999,99

' si le nombre contient plus de 2 décimales, il est arrondit à 2 décimales

Public Function ConvNumberLetter(Nombre As Double, Optional Devise As Byte = 0, _

Optional Langue As Byte = 0) As String

Dim dblEnt As Variant, byDec As Byte

Dim bNegatif As Boolean

Dim strDev As String, strCentimes As String

If Nombre < 0 Then

bNegatif = True

Nombre = Abs(Nombre)

End If

dblEnt = Int(Nombre)

byDec = CInt((Nombre - dblEnt) * 100)

If byDec = 0 Then

If dblEnt > 999999999999999# Then

ConvNumberLetter = "#TropGrand"

Exit Function

End If

Else

If dblEnt > 9999999999999.99 Then

ConvNumberLetter = "#TropGrand"

Exit Function

End If

End If

Select Case Devise

Case 0

If byDec > 0 Then strDev = " virgule"

Case 1

strDev = " Euro"

If byDec > 0 Then strCentimes = strCentimes & " Cents"

Case 2

strDev = " Dollar"

If byDec > 0 Then strCentimes = strCentimes & " Cent"

End Select

If dblEnt > 1 And Devise <> 0 Then strDev = strDev & "s"

ConvNumberLetter = ConvNumEnt(CDbl(dblEnt), Langue) & strDev & " " & _

ConvNumDizaine(byDec, Langue) & strCentimes

End Function

Private Function ConvNumEnt(Nombre As Double, Langue As Byte)

Dim byNum As Byte, iTmp As Variant, dblReste As Double

Dim strTmp As String

iTmp = Nombre - (Int(Nombre / 1000) * 1000)

ConvNumEnt = ConvNumCent(CInt(iTmp), Langue)

dblReste = Int(Nombre / 1000)

iTmp = dblReste - (Int(dblReste / 1000) * 1000)

strTmp = ConvNumCent(CInt(iTmp), Langue)

Select Case iTmp

Case 0

Case 1

strTmp = "mille "

Case Else

strTmp = strTmp & " mille "

End Select

ConvNumEnt = strTmp & ConvNumEnt

dblReste = Int(dblReste / 1000)

iTmp = dblReste - (Int(dblReste / 1000) * 1000)

strTmp = ConvNumCent(CInt(iTmp), Langue)

Select Case iTmp

Case 0

Case 1

strTmp = strTmp & " million "

Case Else

strTmp = strTmp & " millions "

End Select

ConvNumEnt = strTmp & ConvNumEnt

dblReste = Int(dblReste / 1000)

iTmp = dblReste - (Int(dblReste / 1000) * 1000)

strTmp = ConvNumCent(CInt(iTmp), Langue)

Select Case iTmp

Case 0

Case 1

strTmp = strTmp & " milliard "

Case Else

strTmp = strTmp & " milliards "

End Select

ConvNumEnt = strTmp & ConvNumEnt

dblReste = Int(dblReste / 1000)

iTmp = dblReste - (Int(dblReste / 1000) * 1000)

strTmp = ConvNumCent(CInt(iTmp), Langue)

Select Case iTmp

Case 0

Case 1

strTmp = strTmp & " billion "

Case Else

strTmp = strTmp & " billions "

End Select

ConvNumEnt = strTmp & ConvNumEnt

End Function

Private Function ConvNumDizaine(Nombre As Byte, Langue As Byte) As String

Dim TabUnit As Variant, TabDiz As Variant

Dim byUnit As Byte, byDiz As Byte

Dim strLiaison As String

TabUnit = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", _

"huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", _

"seize", "dix-sept", "dix-huit", "dix-neuf")

TabDiz = Array("", "", "vingt", "trente", "quarante", "cinquante", _

"soixante", "soixante", "quatre-vingt", "quatre-vingt")

If Langue = 1 Then

TabDiz(7) = "septante"

TabDiz(9) = "nonante"

ElseIf Langue = 2 Then

TabDiz(7) = "septante"

TabDiz(8) = "huitante"

TabDiz(9) = "nonante"

End If

byDiz = Int(Nombre / 10)

byUnit = Nombre - (byDiz * 10)

strLiaison = "-"

If byUnit = 1 Then strLiaison = " et "

Select Case byDiz

Case 0

strLiaison = ""

Case 1

byUnit = byUnit + 10

strLiaison = ""

Case 7

If Langue = 0 Then byUnit = byUnit + 10

Case 8

If Langue <> 2 Then strLiaison = "-"

Case 9

If Langue = 0 Then

byUnit = byUnit + 10

strLiaison = "-"

End If

End Select

ConvNumDizaine = TabDiz(byDiz)

If byDiz = 8 And Langue <> 2 And byUnit = 0 Then ConvNumDizaine = ConvNumDizaine & "s"

If TabUnit(byUnit) <> "" Then

ConvNumDizaine = ConvNumDizaine & strLiaison & TabUnit(byUnit)

Else

ConvNumDizaine = ConvNumDizaine

End If

End Function

Private Function ConvNumCent(Nombre As Integer, Langue As Byte) As String

Dim TabUnit As Variant

Dim byCent As Byte, byReste As Byte

Dim strReste As String

TabUnit = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", _

"huit", "neuf", "dix")

byCent = Int(Nombre / 100)

byReste = Nombre - (byCent * 100)

strReste = ConvNumDizaine(byReste, Langue)

Select Case byCent

Case 0

ConvNumCent = strReste

Case 1

If byReste = 0 Then

ConvNumCent = "cent"

Else

ConvNumCent = "cent " & strReste

End If

Case Else

If byReste = 0 Then

ConvNumCent = TabUnit(byCent) & " cents"

Else

ConvNumCent = TabUnit(byCent) & " cent " & strReste

End If

End Select

End Function

Bonjour...LA fonction NOMPROPRE() ne vous convient pas ?!

Re-bonjour le forum

Modifs ci-dessous

Ça fonctionne

ConvNumberLetter = Application.WorksheetFunction.Proper(ConvNumEnt(CDbl(dblEnt), Langue) & strDev & " " & _

ConvNumDizaine(byDec, Langue) & strCentimes)


Force rouge a écrit :

Bonjour...LA fonction NOMPROPRE() ne vous convient pas ?!

Bonsoir Force rouge,

Nos réponses se sont croisées!

Merci à toi et bonne fin de soirée

Bien cordialement

oups pardon je suis a coté de la plaque...faites comme-ci je n'avais rien dit...

Force rouge a écrit :

oups pardon je suis a coté de la plaque...faites comme-ci je n'avais rien dit...

Re-bonsoir Force rouge,

Il n'y a pas d'excuses à faire il y a que celui qui ne fait rien qui ne se trompe pas.

Je te souhaite une bonne fin de soirée

Bien cordialement

Pareillement...Je voyais toutes ses lignes pour simplement mettre des lettres en majuscules et j'ai eu un moment d'égarement ! Bonne soirée à vous aussi! (mais c'est de la faute du peintre qui à innondé la barraque de white spirit du coup je plane à 15 000 là)

Rechercher des sujets similaires à "mettre premiere lettre mots majuscules"