Peut-on écrire ce code autremetn
jean300
Messages postés
382
Statut
Membre
-
jean300 Messages postés 382 Statut Membre -
jean300 Messages postés 382 Statut Membre -
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
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:
- Peut-on écrire ce code autremetn
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Ecrire en gras sur whatsapp - Guide
2 réponses
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 :
par :
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.
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.