Mise en forme texte

Le
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #24705682
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.
glop
Le #24705982
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 ^^
Publicité
Poster une réponse
Anonyme