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

Macro de mise en forme de texte

1 réponse
Avatar
Dav
Bonjour

Sur le site Excelabo j'ai utilisé une macro qui permet de mettre en forme du
texte dans une plage de données après saisie.

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

Cette macro permet effectivement de passer le texte de la plage de cellule
référencée en majuscule.

Dans mon fichier je souhaite modifier après saisie plusieurs plages.
Soit la première en majuscule, la deuxième en minuscule et la troisième en
"Nom Propre"
Mon compétences et connaissances ne m'ont pas permis d'arriver à ce résultat.
Quelqu'un pourrait-il me conseiller ?

Merci d'avance
--
Dav

1 réponse

Avatar
Dav
Bonjour Papou

Merci pour ta participation.
C'est vrai qu'en se bottant un peu les fesses et en se donnant la peine de
réflechir, on peut arriver à quelque chose de concluant.

Voici ce à quoi je suis arrivé :

Private Sub Worksheet_Change(ByVal zz As Range)
For Each Cell In [B2:B200]
If Intersect(zz, [B2:B200]) Is Nothing Then Exit For
Application.EnableEvents = False
zz = LCase(zz)
Application.EnableEvents = True
Next
For Each Cell In [C2:C200]
If Intersect(zz, [C2:C200]) Is Nothing Then Exit For
Application.EnableEvents = False
zz = UCase(zz)
Application.EnableEvents = True
Next
If Intersect(zz, [A2:A200]) Is Nothing Then Exit Sub
Application.EnableEvents = False
zz = Application.WorksheetFunction.Proper(zz)
Application.EnableEvents = True
End Sub

Ca fonctionne correctement à priori.

--
Dav



Bonjour
Tu as le point de départ avec le code exemple.
Tu devrais donc pouvoir adapter en :
- ajoutant un test sur d'autres plages
- utilisant la fonction LCase pour minuscules
- utilisant la fonction Proper (disponible à partir de
Application.WorksheetFunctions) pour Nom propre

Cordialement
Pascal

"Dav" a écrit dans le message de news:

Bonjour

Sur le site Excelabo j'ai utilisé une macro qui permet de mettre en forme
du
texte dans une plage de données après saisie.

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

Cette macro permet effectivement de passer le texte de la plage de cellule
référencée en majuscule.

Dans mon fichier je souhaite modifier après saisie plusieurs plages.
Soit la première en majuscule, la deuxième en minuscule et la troisième en
"Nom Propre"
Mon compétences et connaissances ne m'ont pas permis d'arriver à ce
résultat.
Quelqu'un pourrait-il me conseiller ?

Merci d'avance
--
Dav