OVH Cloud OVH Cloud

[Majuscules] VBA

3 réponses
Avatar
Cath
Bonjour à tous,

Dans une feuille, je souhaite avoir la première lettre de chaque mot en
majuscules dans la colonne E et tout en majuscules dans la colonne F.

Voici la macro qui avait été donnée sur ce groupe il y a quelque temps :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("C")) Is Nothing Then
Target = UCase(Target)
End If
End Sub

J'ai donc changé Columns("C") en Columns("F") et ça fonctionne.
Quelle modification dois-je apporter pour que la colonne E soit en
Première Majuscule s'il-vous-plaît ?

Une autre macro m'avait été conseillée (qui fonctionne très bien dans un
autre classeur et j'en remercie encore son auteur), puis-je
éventuellement la modifier (et comment ?) pour faire la même chose
(colonne E en première majuscule et F en majuscules) ?

La voici :

Private Sub Worksheet_Change(ByVal zz As Range)
Application.EnableEvents = True
Select Case zz.Address
Case "$B$4": zz = UCase(zz)
Case "$F$4": zz = Application.Proper(zz)
Case Else: Exit Sub
End Select
Application.EnableEvents = True
End Sub

Un grand merci à qui pourra m'aider.

--
Cath :-)
/\____/\ L'Australie dans tous ses états :
\ / \ / http://perso.wanadoo.fr/cathozie/
- > O O < - Aide internet : CuteFTP, Forté Agent, ClipMate,
- o - créer votre répertoire chez Wanadoo !
> v < http://perso.wanadoo.fr/cathozie/aideinternet/

3 réponses

Avatar
denis P
Salut,
Un exemple....
denis p.

''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rg As Range
Set rg = Intersect(Target, Range("A:A"))
If rg Is Nothing Then
Exit Sub
Application.EnableEvents = True
End If

For Each c In rg
If Not IsNumeric(c) Then
If Left(c.Formula, 1) <> "=" And Left(c.Formula, 1) <> "+" Then
Application.EnableEvents = False
'Pour avoir lettre majuscule à chaque mot
c.Value = Application.WorksheetFunction.Proper(c)

'pour avoir seulement premiere lettre en majuscule
'c.Value = UCase(Left(c, 1)) & LCase(Right(c, Len(c) - 1))
'pour avoir tout lettre en majuscule
'c.Value = UCase(c.Value)
Application.EnableEvents = True
End If
End If
Next c

Set rg = Nothing
End Sub
"Cath" a écrit dans le message de
news:
Bonjour à tous,

Dans une feuille, je souhaite avoir la première lettre de chaque mot en
majuscules dans la colonne E et tout en majuscules dans la colonne F.

Voici la macro qui avait été donnée sur ce groupe il y a quelque temps :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("C")) Is Nothing Then
Target = UCase(Target)
End If
End Sub

J'ai donc changé Columns("C") en Columns("F") et ça fonctionne.
Quelle modification dois-je apporter pour que la colonne E soit en
Première Majuscule s'il-vous-plaît ?

Une autre macro m'avait été conseillée (qui fonctionne très bien dans un
autre classeur et j'en remercie encore son auteur), puis-je
éventuellement la modifier (et comment ?) pour faire la même chose
(colonne E en première majuscule et F en majuscules) ?

La voici :

Private Sub Worksheet_Change(ByVal zz As Range)
Application.EnableEvents = True
Select Case zz.Address
Case "$B$4": zz = UCase(zz)
Case "$F$4": zz = Application.Proper(zz)
Case Else: Exit Sub
End Select
Application.EnableEvents = True
End Sub

Un grand merci à qui pourra m'aider.

--
Cath :-)
/____/ L'Australie dans tous ses états :
/ / http://perso.wanadoo.fr/cathozie/
- > O O < - Aide internet : CuteFTP, Forté Agent, ClipMate,
- o - créer votre répertoire chez Wanadoo !
v < http://perso.wanadoo.fr/cathozie/aideinternet/




Avatar
Cath
Ce Wed, 2 Mar 2005 11:49:01 +0100, denis P nous dit :

Bonjour et merci beaucoup de ta réponse.

En changeant le A en E, j'ai bien le contenu de ma colonne E en première
majuscule, mais rien d'autre (donc F ne se met pas en majuscule).

Qu'est-ce que j'oublie de faire pour ce résultat ?

Merci encore :-)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rg As Range
Set rg = Intersect(Target, Range("A:A"))
If rg Is Nothing Then
Exit Sub
Application.EnableEvents = True
End If

For Each c In rg
If Not IsNumeric(c) Then
If Left(c.Formula, 1) <> "=" And Left(c.Formula, 1) <> "+" Then
Application.EnableEvents = False
'Pour avoir lettre majuscule à chaque mot
c.Value = Application.WorksheetFunction.Proper(c)

'pour avoir seulement premiere lettre en majuscule
'c.Value = UCase(Left(c, 1)) & LCase(Right(c, Len(c) - 1))
'pour avoir tout lettre en majuscule
'c.Value = UCase(c.Value)
Application.EnableEvents = True
End If
End If
Next c

Set rg = Nothing
End Sub


--
Cath :-)
/____/ L'Australie dans tous ses états :
/ / http://perso.wanadoo.fr/cathozie/
- > O O < - Aide internet : CuteFTP, Forté Agent, ClipMate,
- o - créer votre répertoire chez Wanadoo !
v < http://perso.wanadoo.fr/cathozie/aideinternet/


Avatar
AV
Colonne E en "Nom propre" et F en majuscules
Dans le module de la feuille :

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Column <> 5 And zz.Column <> 6 Then Exit Sub
On Error Resume Next
Application.EnableEvents = False
If zz.Column = 5 Then zz = Application.Proper(zz)
If zz.Column = 6 Then zz = UCase(zz)
Application.EnableEvents = True
End Sub

AV