Peut-on écrire ce code autremetn

Fermé
jean300 Messages postés 374 Date d'inscription jeudi 11 août 2016 Statut Membre Dernière intervention 13 janvier 2020 - Modifié le 15 oct. 2018 à 12:12
jean300 Messages postés 374 Date d'inscription jeudi 11 août 2016 Statut Membre Dernière intervention 13 janvier 2020 - 15 oct. 2018 à 13:55
Bonjour,
Je voudrais savoir s'il est possible d'écrire ce code de façon plus fonctionnel
Çà concerne des cellules variables sous excel 2003
En vous remerciant

'1ère lettre en Majuscule
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, C As Range
Set Rg = Intersect(Range("A29, A34, A37, K4,S10, S18, S21"), Target)
If Not Rg Is Nothing Then
    Application.EnableEvents = False
    For Each C In Rg
        If C <> "" Then
            C.Value = UCase(Left(C, 1)) & LCase(Right(C, Len(C) - 1))
        End If
    Next
    Application.EnableEvents = True
End If

'Nom en MAJUSCULE
Dim Plage As Range
Dim Cellule As Range
Set Plage = Intersect(Target, Range("A4, K7, G24"))
    If Plage Is Nothing Then Exit Sub     'Intersection vide on quitte
        For Each Cellule In Plage     ' sinon on parcours toutes les cellules de la plage d'intersection
           Cellule = UCase(Cellule)    ' et on passe en majuscule
        Next
End Sub




A voir également:

2 réponses

eriiic Messages postés 24595 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 2 septembre 2024 7 235
Modifié le 15 oct. 2018 à 12:57
Bonjour,

c'est quoi plus fonctionnel qu'un truc qui fonctionne ? :-)
Si tu as des cas en anomalie préciser lesquels.
Pas grand chose à modifier.
Eventuellement remplacer :
c.Value = UCase(Left(c, 1)) & LCase(Right(c, Len(c) - 1))

par :
c.Value = Application.Proper(c.Value)


Et ajouter Application.EnableEvents = False/True dans la 2nde.
eric

Edit : pourquoi déclarer Dim Plage As Range et Dim Cellule As Range alors que tu peux te resservir de rg et c ?
Et en règle générale on met toutes les déclarations en début du module, pas en plein milieu. C'est plus clair.

0
jean300 Messages postés 374 Date d'inscription jeudi 11 août 2016 Statut Membre Dernière intervention 13 janvier 2020 14
15 oct. 2018 à 13:55
Merci eriiic
Sympa. A +
0