Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Mise en forme texte

2 réponses
Avatar
glop
Bonjour

Je souhaite mettre en forme automatiquement (en majuscules par exemple)
du texte saisi dans différentes cellules. J'ai trouvé la macro suivante
(sur Excelabo) qui marche trés bien (tant que je reste avec une zone
continue et une seule mise en forme) :

Private Sub Worksheet_Change(ByVal zz As Range)
If Intersect(zz, [A3:A4502]) Is Nothing Then Exit Sub
Application.EnableEvents = False
zz = UCase(zz)
Application.EnableEvents = True
End Sub

Mais je n'arrive pas à la modifier :
* pour des plages discontinues (clonne A, Colonne C, Colonne R...) avec
la meme mise en forme (tout en majuscules, par exemple);
* ou plus compliqué, des résultats différents par plages (minuscules,
premiere lettre majuscule... par colonnes).

Est ce possible ?
Si quelqu'un a des dées là dessus, merci de m'en faire part.

2 réponses

Avatar
MichD
Bonjour,

Essaie comme ceci :

La procédure s'applique pour les colonnes 1, 3, 18 (A, C, R)
Tu peux ajouter toutes les colonnes que tu désires...

'--------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range, Cel As Range
For Each C In Target.Columns
Select Case C.Column
Case 1, 3, 18
Application.EnableEvents = False
For Each Cel In C.Cells
Cel.Value = UCase(Cel)
Next
Application.EnableEvents = True
End Select
Next
End Sub
'--------------------------------------


MichD
---------------------------------------------------------------
"glop" a écrit dans le message de groupe de discussion : k0ft83$ck5$

Bonjour

Je souhaite mettre en forme automatiquement (en majuscules par exemple)
du texte saisi dans différentes cellules. J'ai trouvé la macro suivante
(sur Excelabo) qui marche trés bien (tant que je reste avec une zone
continue et une seule mise en forme) :

Private Sub Worksheet_Change(ByVal zz As Range)
If Intersect(zz, [A3:A4502]) Is Nothing Then Exit Sub
Application.EnableEvents = False
zz = UCase(zz)
Application.EnableEvents = True
End Sub

Mais je n'arrive pas à la modifier :
* pour des plages discontinues (clonne A, Colonne C, Colonne R...) avec
la meme mise en forme (tout en majuscules, par exemple);
* ou plus compliqué, des résultats différents par plages (minuscules,
premiere lettre majuscule... par colonnes).

Est ce possible ?
Si quelqu'un a des dées là dessus, merci de m'en faire part.
Avatar
glop
Dans son message précédent, MichD a écrit :
Bonjour,

Essaie comme ceci :

La procédure s'applique pour les colonnes 1, 3, 18 (A, C, R)
Tu peux ajouter toutes les colonnes que tu désires...

'--------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range, Cel As Range
For Each C In Target.Columns
Select Case C.Column
Case 1, 3, 18
Application.EnableEvents = False
For Each Cel In C.Cells
Cel.Value = UCase(Cel)
Next
Application.EnableEvents = True
End Select
Next
End Sub
'--------------------------------------


MichD
---------------------------------------------------------------
"glop" a écrit dans le message de groupe de discussion :
k0ft83$ck5$

Bonjour

Je souhaite mettre en forme automatiquement (en majuscules par exemple)
du texte saisi dans différentes cellules. J'ai trouvé la macro suivante
(sur Excelabo) qui marche trés bien (tant que je reste avec une zone
continue et une seule mise en forme) :

Private Sub Worksheet_Change(ByVal zz As Range)
If Intersect(zz, [A3:A4502]) Is Nothing Then Exit Sub
Application.EnableEvents = False
zz = UCase(zz)
Application.EnableEvents = True
End Sub

Mais je n'arrive pas à la modifier :
* pour des plages discontinues (clonne A, Colonne C, Colonne R...) avec
la meme mise en forme (tout en majuscules, par exemple);
* ou plus compliqué, des résultats différents par plages (minuscules,
premiere lettre majuscule... par colonnes).

Est ce possible ?
Si quelqu'un a des dées là dessus, merci de m'en faire part.



Bonjour

Super ! Merci pour cette efficace et trés rapide réponse ^^