Peut-on écrire ce code autremetn
jean300
Messages postés
374
Date d'inscription
Statut
Membre
Dernière intervention
-
jean300 Messages postés 374 Date d'inscription Statut Membre Dernière intervention -
jean300 Messages postés 374 Date d'inscription Statut Membre Dernière intervention -
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
- Ecrire en gras sur whatsapp - Guide
- Code activation windows 10 - 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.